66 lines
2.2 KiB
Scheme
66 lines
2.2 KiB
Scheme
;;; first ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal 'a (first '(a)))
|
|
(assert-equal 'a (first '(a b)))
|
|
(assert-equal 'a (first '(a b c)))
|
|
(assert-equal 'a (first '(a b c d)))
|
|
|
|
;;; second ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal 'b (second '(a b)))
|
|
(assert-equal 'b (second '(a b c)))
|
|
(assert-equal 'b (second '(a b c d)))
|
|
|
|
;;; third ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal 'c (third '(a b c)))
|
|
(assert-equal 'c (third '(a b c d)))
|
|
|
|
;;; last ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal 'a (last '(a)))
|
|
(assert-equal 'b (last '(a b)))
|
|
(assert-equal 'c (last '(a b c)))
|
|
(assert-equal 'd (last '(a b c d)))
|
|
|
|
;;; c(a|d){2}r ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(let
|
|
([lst
|
|
'((a b) c d)])
|
|
(begin
|
|
(assert-equal 'a (caar lst))
|
|
(assert-equal '(b) (cdar lst))
|
|
(assert-equal 'c (cadr lst))
|
|
(assert-equal '(d) (cddr lst))))
|
|
|
|
;;; c(a|d){3}r ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(let
|
|
([lst
|
|
'(((a b) c d) (e f) g h)])
|
|
(begin
|
|
(assert-equal 'a (caaar lst))
|
|
(assert-equal '(b) (cdaar lst))
|
|
(assert-equal 'c (cadar lst))
|
|
(assert-equal '(d) (cddar lst))
|
|
(assert-equal 'e (caadr lst))
|
|
(assert-equal '(f) (cdadr lst))
|
|
(assert-equal 'g (caddr lst))
|
|
(assert-equal '(h) (cdddr lst))))
|
|
|
|
;;; c(a|d){4}r ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(let
|
|
([lst
|
|
'((((a b) c d) (e f) g h) ((i j) k l) (m n) o p)])
|
|
(begin
|
|
(assert-equal 'a (caaaar lst))
|
|
(assert-equal '(b) (cdaaar lst))
|
|
(assert-equal 'c (cadaar lst))
|
|
(assert-equal '(d) (cddaar lst))
|
|
(assert-equal 'e (caadar lst))
|
|
(assert-equal '(f) (cdadar lst))
|
|
(assert-equal 'g (caddar lst))
|
|
(assert-equal '(h) (cdddar lst))
|
|
(assert-equal 'i (caaadr lst))
|
|
(assert-equal '(j) (cdaadr lst))
|
|
(assert-equal 'k (cadadr lst))
|
|
(assert-equal '(l) (cddadr lst))
|
|
(assert-equal 'm (caaddr lst))
|
|
(assert-equal '(n) (cdaddr lst))
|
|
(assert-equal 'o (cadddr lst))
|
|
(assert-equal '(p) (cddddr lst))))
|