浮気した
『The Little Schemer (The MIT Press)』もやっと10章。8章あたりから難しくなる。
ちょっと息抜きに、と思ったら『ふつうのHaskellプログラミング』に浮気してしまった。
今週だけは・・・いいよね?と、とりあえず1部読みました。
なんとなく、SchemeとHaskellでmap関数を定義してみる。
Schemeでは
(mymap add1 '(10 20 30 40 50)) (define add1 (lambda (n) (+ n 1))) (define mymap (lambda (f l) (cond ((null? l) '()) (else (cons (f (car l)) (mymap f (cdr l)))))))
Haskellでは
main = print $ mymap add1 [10, 20, 30, 40, 50] add1 :: Int -> Int add1 n = n + 1 mymap :: (a -> b) -> [a] -> [b] mymap f [] = [] mymap f (x:xs) = f x : map f xs
Haskellではprintしてるのに、Schemeでは対話環境にまかせてるのは置いておいて。
どちらも、
11, 21, 31, 41, 51
のリストが返ってくるわけですが、
Haskellのほうが簡潔で分かりやすいはずなのに、
Schemeの方が分かりやすいと感じたのはSchemeに慣れてきたからでしょうか。
がんばって「The Little Schemer」読み終えるぞぅ
でも、とりあえずふつうのHaskellも2部早く読みたい。
そういえば、今日は3月3日。耳の日ということですが、
ぞぅは鼻が長いだけでなく、耳も大きいぞぅ、と言ってみる。さぶっ。
こんなことを言わせるのも、Little Schemerの表紙が愛くるしいからだ。と責任転嫁。ぞぅは俺の嫁。さぶっ。
それにしても、白と赤のハイライティングは不気味だ