kiyokaのブログアーカイブ

Archive of old blog posts

mapとfilterが動いた

私がRubyで書いているLisp方言、 [Nendo]の開発状況。 なんとか、mapとfilterを動かす部品がそろったぞ。

残念ながらmapは副作用を許している。ちょっとキモチワルイ。

nendo> (map p '(true false nil 1 2 3 "a"))
true
false

1
2
3
a
(true false nil 1 2 3 "a")
  • mapの例
    nendo> (map (lambda (x) x) '(true false nil 1 2 3 "a"))
    (true false nil 1 2 3 "a")
    
  • mapとforeachは同じなの
    nendo> (foreach (lambda (x) x) '(true false nil 1 2 3 "a"))
    (true false nil 1 2 3 "a")
    
  • 真偽の判定はRubyと同じ
    nendo> (filter (lambda (x) x) '(true false nil 1 2 3 "a"))
    (true 1 2 3 "a")
    

気づいてもらえただろうか。 Lisp-1族なのでSchemeに似ているかも知れないけど、true false nil はRubyで定義されているそのもの。 やっぱり実際に動くと楽しいよね。オレ言語やってみて良かったー。 これをきっかけにいろんな言語について知ることもできるし。 これから恥を気にせず、書いたコードとか、迷ったこととかをを晒していきます。


コメント by sion:
人に使ってもらえるツールを作るのは楽しいものです。 それで喜んでもらえたら、ひとしおですね。 と、考えると、オレ言語の開発は 究極かもしれませんね(^^)

余談ですが、先日 「別に技術にもプログラミングにも興味はない」と言い切るプログラマーに出会ってショックを受けました。


コメント by kiyoka:
人に使ってもらえるものになるかどうかわかりませんが、その心意気で作っていきます。 まずは、自分が日常的に使いたくなるものができれば… と思っています。楽しみながら続けたいです。

そうそう、プログラミング自体に興味が無いプログラマーは時々いらっしゃいますよね。 最初は私もショックだったのですが、意外とそういう人は多いので悲しいです。 プログラミング言語の表現力が年々向上しているので、数年先にはプログラミングを楽しめる人とそうでない人の差は、結果として大きな技術力の差になってくると信じています。いや、信じたいです。 でも時々、スクリプト言語が使える場面でも、C言語でとんでもない質と量のコードを量産する人がいたりして全てあてはまるわけではないんですけどね。

コメント by sion:
人に使ってもらえるツールを作るのは楽しいものです。 それで喜んでもらえたら、ひとしおですね。 と、考えると、オレ言語の開発は 究極かもしれませんね(^^)

余談ですが、先日 「別に技術にもプログラミングにも興味はない」と言い切るプログラマーに出会ってショックを受けました。