2008.07.20 Sunday
Schemeでリストの操作
すっかりSchemeプログラミング学習の記録に成り変っている
当プログですが、今日もSchemeネタです。 リストの操作を勉強してみた。 ;;リストの操作 ;;リストを作る (list 1 2 3 4 5) ; ⇒ (1 2 3 4 5) これでリストができた。 ;;リストを束縛する (define x '(1 2 3 4 5)) (define y '(6 7 8 9 10)) リストを2個作って xとy に束縛した。 ;;リストの長さを数える(再帰) (define (length- ls) (if (null? ls) 0 (+ 1 (length- (cdr ls))))) (length- x) ; ⇒ 5 リストの長さを数える関数を作った。 リストが空っぽなら0、そうでなければ+1して 残りを自分自身に設定する。これが再帰。 ;;リストの結合(再帰) (define (append- x y) (if (null? x) y (cons (car x) (append- (cdr x) y)))) (append- x y) ; ⇒ (1 2 3 4 5 6 7 8 9 10) ;;リストの反転(再帰) (define (reverse- ls) (if (null? ls) '() (append- (reverse- (cdr ls)) (list (car ls))))) (reverse y) ; ⇒ (10 9 8 7 6) ;;リストを結合して、反転 (reverse- (append- x y)) ; ⇒ (10 9 8 7 6 5 4 3 2 1) ;;リストを結合して、反転してさらに反転 (reverse- (reverse- (append- x y))) ; ⇒ (1 2 3 4 5 6 7 8 9 10) なんとなくリスト操作と再帰が分かってきた気がする。 □ 今の貯蓄 ネット銀行 103670円 証券会社 1,420,602円 現金 30,000円 合計1,554,272円 目標まであと2,845,728円 応援をお願いします。 人気ブログランキングへ |

