Entries from 2014-11-15 to 1 day

【Scheme】区切りでリストをグループ化

区切りでリストをグループ化する関数を書いてみた。結構、悩んだ。 (define (group-list ls sep) (letrec ((iter (lambda (ls0 ls1) (cond ((null? ls0) (list (reverse ls1))) ((eqv? (car ls0) sep) (cons (reverse (cons sep ls1)) (iter (cdr ls0) '()))…

【Scheme】mapの定義

mapを定義してみた。 ;;; リストの最初の要素を集めてリストにする (define (first-elems lss) (let loop ((ls0 lss) (ls1 '())) (if (null? ls0) (reverse ls1) (loop (cdr ls0) (if (null? (car ls0)) ls1 (cons (car (car ls0)) ls1)))))) ;;; リストのcd…