1 ! (c)2009 Joe Groff bsd license
2 USING: kernel math tools.test variants ;
7 cons: { { first object } { rest list } }
10 [ t ] [ nil list? ] unit-test
11 [ t ] [ 1 nil <cons> list? ] unit-test
12 [ f ] [ 1 list? ] unit-test
14 : list-length ( list -- length )
17 { cons [ nip list-length 1 + ] }
21 [ 5 6 7 8 nil <cons> <cons> <cons> <cons> list-length ] unit-test
25 VARIANT-MEMBER: list2 nil2
26 VARIANT-MEMBER: list2 cons2: { { first object } { rest list2 } }
28 [ t ] [ nil2 list2? ] unit-test
29 [ t ] [ 1 nil2 <cons2> list2? ] unit-test
30 [ f ] [ 1 list2? ] unit-test
32 : list2-length ( list2 -- length )
35 { cons2 [ nip list2-length 1 + ] }
39 [ 5 6 7 8 nil2 <cons2> <cons2> <cons2> <cons2> list2-length ] unit-test