- # 2010/01/26(Tue) : Scheme Quiz 1 問目
- Twitter にて Scheme を使ったクイズを出題した。
baal:スキームクーイズ!さて突然ですがここで Schemer の皆さんに問題です。
Q1. リストの最初の要素を car と list-ref を使わず取り出してください。A. SRFI-1 の first を使う。
A. reverse して最後の要素を match で取り出す。
A. 頭に何か cons して cadr を使う。
A. (apply (lambda (x . _) x) xs)
A. (apply #'identity (last (reverse x))) ;CL?
A. (dolist (i l) (return i)) ;CL?
A. (def mycar (l) (ccc[map _ l])) ;Arc
A. (call/cc (λ (c) (for-each (λ (x) (c x)) xs)))
A. (vector-ref (list->vector xs) 0)
A. (call/cc (cut map <> l))
A. (find idfn l) ;Arc
A. (find-if'identity l) ;CL
A. (find-if (constantly t) l) ;CL
A. (find[+]l) ;Arc?
A. (find[*]l) ;Arc?
A. (define (my-car lst) (set-cdr! lst '()) (apply (lambda (x) x) lst))
A. (find (lambda _ #t) '(a b c))
A. (reduce-right (lambda (x . _) x) #f lst)
A. (define-syntax syntax-car (syntax-rules () ((_ (a . _)) a)))
A. (syntax->datum (syntax-case lst () [(x . _) #'x]))



