Example 2  ( Level 2 )

{ Is a liked list included in another ? }
LET
    L1 , L2 : LISTS ;
    Search , All : FUNCTION ( BOOLEAN ) ;

BEGIN
    CREATE_LIST ( L1 , [ 2 , 5 , 9 , 8 , 3 , 6 ] ) ;
    CREATE_LIST ( L2 , [ 12 , 5 , 19 , 8 , 3 , 6 , 2 , 9 ] ) ;
    WRITE ( All ( L1 , L2 ) )
END

{ Search for a value in a linked list }
FUNCTION Search ( L , Val ) : BOOLEAN
LET
    L : LIST ;
    Val : INTEGER ;

BEGIN
    IF L = NULL
        Search := FALSE
    ELSE
        IF CELL_VALUE ( L ) = Val
            Search := TRUE
        ELSE
            Search := Search ( NEXT ( L ) , Val )
        ENDIF
    ENDIF
END

{ Is L1 included in L2? }
FUNCTION All ( L1 , L2 ) : BOOLEAN
LET
    L1 , L2 : LISTS ;

BEGIN
    IF L1 = NULL
        All := TRUE
    ELSE
        IF NOT Search ( L2 , CELL_VALUE ( L1 ) )
            All := FALSE
        ELSE
            All := All ( NEXT ( L1 ) , L2 )
        ENDIF
    ENDIF
END