(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

マッピング?

なんとなくソースコード書いてました。
で、mapって出てきたのでちょっと困惑してる。
元々Java触ってるのでmapってコレクションなイメージ。

mapとは

リストの各要素に同じ操作をする関数です。 操作を施したリストを返す map と、副作用を目的とする for-each の2つが R5RS で定義されています。

高階関数
らしいです。ってことで実際に以下を実行。

(define (double ls)
  (map (lambda (x)
	 (* x 2)) ls))

これってつまり下と同じだよね?

(define (double2 ls)
  (cond
   ((null? ls) '())
   (else
    (cons (* (car ls) 2)
	  (double2 (cdr ls))))))

やっぱ再帰気持ちいいね!
リストの各要素に同じ操作をするって、へーってなりますね。
なんかイメージしにくいけど…。しかも、可変長みたいだし。
複雑怪奇!!

広告を非表示にする