- 1 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:37:08.66 ]
- Common Lisp、SchemeをはじめとするLisp族全般のスレです
■前スレ Lisp Scheme Part33 toro.2ch.net/test/read.cgi/tech/1318150738/ ■テンプレ wiki.fdiary.net/lisp/ ■関連スレ 【入門】Common Lisp その8【質問よろず】 hibari.2ch.net/test/read.cgi/tech/1309940115/
- 152 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 19:10:15.74 ]
- 副作用を目の敵にしてるんじゃなくて
副作用のある部分もない部分もプログラムの正しさを証明できればいいなっ という試みだろ
- 153 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 19:17:23.29 ]
- > 合理的な理由があったとしても、メンタルモデルとかけ離れた言語は使い難いよ。
もっともな話だけど、そのメンタルモデルとやらが本質を捉えていたかどうかだな。 継続みたいに慣れの問題にすぎないんじゃないかと思うよ
- 154 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:29:10.52 ]
- >>142
Haskellは知識を「体系的」と言うより数式と同じように「宣言的」に表します。 人の脳味噌にとっても宣言的に考える方が手続的に考えるより向いている場合があります。 宣言的記述である方程式を手続き的に記述すると鶴亀算になりますが、 方程式の方が鶴亀算よりずっとわかりやすいです。 >>151 はっきりとコードを手続的記述と宣言的記述に分けられるか、と言い換える事もできます。 Haskellは、その点では理想に近いですね。
- 155 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:32:59.87 ]
- >>140
だよね。 結局性能が落ちるコードを避けるために神経を使わないといけないなら、 eagerに対する利点が相殺されてるんじゃないのか、って思うわ。 個人的な印象としては、必要なときだけlazyにできれば十分。 その方が、必要なときだけeagerにするよりはずっと分かりやすい。
- 156 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 07:55:50.40 ]
- lazyは下手にボトムを回避しちゃうからねぇ
- 157 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 09:07:55.27 ]
- だからLazyじゃないMLを使ってればいいだろが。
なんでLispスレでHaskellヘイトをせにゃならんのだ。
- 158 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 10:04:37.29 ]
- ClojureもRacketもデフォルトlazyではないはず。
- 159 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 10:07:25.49 ]
- Racketさんは四次元ポケット持ってるのか?
docs.racket-lang.org/lazy/ docs.racket-lang.org/ts-guide/
- 160 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:12:35.60 ]
- >>157
既に条件に合うLispって言語を使ってるのにML使えとか言われても。 それに、OOPを批判することとJavaを批判することが同じでないように、 Haskellを攻撃してるわけじゃないのは理解して欲しいところ。 あと、遅延でHaskellばっかり引き合いに出すと、多分Cleanさんが泣く。
- 161 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 02:17:20.62 ]
- WEB+DBマガジン立ち読みしたけど
関数型言語の定義を静的単一代入であること とかにするのはいくら何でもおかしいだろ もちろん、関数型言語の定義なんて存在しないことは わかっているつもりだけどさ
- 162 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 02:23:26.60 ]
- はぁ?
- 163 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 07:57:33.75 ]
- LispがいいならLisp使ってればいいじゃない。
静的型やらなんやらと、遅延評価は抱き合わせじゃない、というそんだけの話。
- 164 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 15:25:55.02 ]
- 一応フォローしとくけど、最初から遅延評価が標準の環境の話しかしてないし、
Haskellや静的型の話をしてるのは別の人。勘違いで過剰に反応するのは勘弁して。
- 165 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 16:19:02.99 ]
- 静的単一代入なんて言語あるのか?
- 166 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 16:29:24.95 ]
- HaskellerがLispを否定的に評価したので、HaskellよりLispが良いと思う理由を書いただけだけど。
- 167 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 17:10:19.84 ]
- >>165 SSAの訳だけど、あまりプログラミング言語の分類では使わない表現だね。
関数型言語の中間表現でよく使われる形式と等価ではあるんだが。
- 168 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 18:16:18.87 ]
- 手続き型言語のIRにも時々登場するな
LLVM IRもSSAだし、Google V8のJITCが使うのもSSAなはず
- 169 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 18:44:49.39 ]
- 関数型言語のほうはCPSね。
- 170 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:19:44.93 ]
- >>165
Haskellerがそうなんじゃないの SSA(静的単一代入)は中間表現に対して使われるものとwikiepediaに書いてあったけど ちなみに、C/C++とかだって最適化の途中でSSA形式の中間表現に変換される
- 171 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:20:23.15 ]
- >>170
×Haskeller ○Haskell
- 172 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 02:28:26.54 ]
- >>168
むしろ現代の最適化コンパイラでは デファクトスタンダードの中間表現
- 173 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 09:36:41.19 ]
- (関数型)プログラミング言語の性質としては「単一代入性」と言う。
- 174 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:09:43.95 ]
- Haskellってすごいすごい言われているけど
現実では大した役に立ってないよね Haskellなんかわからないけど凄そうみたいな 印象操作に成功しているだけだろ
- 175 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 20:18:25.14 ]
- |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜 >( c´_ゝ`) | | >( c´_ゝ`) J >( c´_ゝ`) | 〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜 | >( c´,_ゝ`) | J >( c´,_ゝ`) >( c´,_ゝ`)
- 176 名前:デフォルトの名無しさん [2012/03/08(木) 21:29:15.66 ]
- Haskellならではの便利なプログラム手法とか教えてくれないか?
当方Scheme使ってるが。
- 177 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 21:55:54.71 ]
- 「う〜〜Haskell Haskell」
今Haskellならではの便利プログラムを求めて全力疾走している僕は 予備校に通う ごく一般的な男の子 強いて違うところをあげるとすれば Schemeを使ってるってとこかナー 名前は道下正樹
- 178 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 21:58:07.33 ]
- やめないか
- 179 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 22:50:06.22 ]
- λアッー!!
- 180 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 23:10:20.44 ]
- Λーッ!!
- 181 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 04:07:33.35 ]
- Haskell使っているだけで
自分は優れているなどと勘違いしてそう
- 182 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 04:08:38.79 ]
- Haskellは型安全で爆速だお
- 183 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 04:44:31.02 ]
- でも、実際使ったら彼女はできるし
- 184 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 09:21:33.35 ]
- >>176 packratパーザ
- 185 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 09:41:50.75 ]
- 関数言語信者って選民思想の人多すぎだよね
Lips界隈でもポール・グレハムとかさ
- 186 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 09:51:12.60 ]
- でも実際、PHPとかJavaとか使っていたら
その時点で雑魚確定だろ
- 187 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 09:57:47.96 ]
- 使っている言語でプログラマの能力をを判断すべきじゃないよ
- 188 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:02:11.32 ]
- >>186
何故?
- 189 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:28:31.63 ]
- 関数型言語の信者は中二ってことでいいけどさ、
俺が分からないからお前も分かっちゃ駄目ってのは日教組強すぎだろ
- 190 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:37:28.69 ]
- 選民思想というより、言語の選定を真面目にしない人を馬鹿にするって感じだと思うよ。
Javaとか使ってても、きっちり技術的な観点からバランス感覚のある選択をしてれば、 無意味に馬鹿にされたりはしない。
- 191 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:46:00.40 ]
- Clojure使ってるんでJavaのコードも書くよ。
- 192 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:50:38.83 ]
- プロジェクトならJava使うほうが、lispなどの関数型言語使うより
いい利点たくさん挙げられるけど
- 193 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:55:07.67 ]
- >>184
packrat parserは言語に依存する技術じゃないと思う。 Haskell以外の言語での実装も溢れてるし。
- 194 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:56:35.64 ]
- だけど、遅延評価使ってエレガントに書けるじゃん
- 195 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:03:11.45 ]
- そういう話なら、遅延評価を前提にしたコードが書けるのがHaskellならではなのであって、
流石に語弊あり過ぎ。 あと、Haskellならではでもないというか、Cleanでも同じことできないか?
- 196 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:09:38.02 ]
- MirandaでもCleanでもなくてHaskellならでは、って条件は流石に厳しくないか?
- 197 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:13:19.83 ]
- 遅延評価なんて大昔から知られていた手法なのに
なんで一般の言語で使われないのか? Haskell布教者の主張するような利点だけじゃなくて 欠点も多いからだろ
- 198 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:13:41.50 ]
- Miranda, Cleanは演算子ユーザ定義が無理じゃなかったかな。
- 199 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:14:28.71 ]
- >>197
一応、遅延評価デザインパターンってのはあります。 言語が直接サポートするのが少ないだけで。
- 200 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:19:22.62 ]
- >>199
それは分かるけどさ、言語が直接サポートしないのが一般的なのは 遅延評価と普通の評価のトレードオフを考えた上だろ
- 201 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:29:37.02 ]
- >>197 の主張はたとえばガベージコレクションにもそのままあてはまるよな。
Java が流行ったとたん、パッタリと消えたタイプのw
- 202 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:31:03.42 ]
- >>196
それは確かにそうかもしれない。ちょっと過敏な反応だったようで申し訳ない。 最近、何かにつけてHaskellが引き合いに出されることが多くて、ささくれだってたみたいだ。
- 203 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:32:29.66 ]
- >>200
そもそも遅延評価という選択肢を考慮すらせずに設計された言語も多いんじゃない
- 204 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:41:13.17 ]
- >>203
言語設計者がそんなに馬鹿な連中だとは思わないけど 遅延評価なんて大学で情報関係の教育を受けた人間なら知ってることだろ
- 205 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:41:36.45 ]
- >>201
遅延評価がこれから流行る可能性はゼロだけど
- 206 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 11:51:13.09 ]
- ほら、こういう風に図に乗る奴がすぐ出てくるんだよ
- 207 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:05:46.45 ]
- >>204
今どきの、情報教育ならね。 今現在主流の言語はほとんど、二世代三世代前の連中が設計したものがベースってことを忘れちゃいかんよ。
- 208 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:08:35.04 ]
- JavaとRubyは?
それ以外の新しい言語でも遅延評価は採用されてない 欠点も大きいからね
- 209 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:12:20.41 ]
- いつまでスレタイも見ずに暴れるつもりだこのバカ?
- 210 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:15:27.59 ]
- だったらスルーしろよ
- 211 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:18:42.10 ]
- その「だったら」がよくわからない
- 212 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:19:03.04 ]
- 新しい言語で遅延評価が採用されてないって、ガチで言ってるならお前は帰れw
- 213 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:22:26.05 ]
- >>208
欠点があることは誰も否定してない。 が、採用言語が少ないことは、欠点だけが理由じゃなく、考慮されないことが多かったからって話をしている。 もちろんJavaが先行評価なのは歴史的経緯なんだろうし、RubyについてはMatz本人に聞かないと分からんけど そういう個々の話をしてるわけじゃないだろ...
- 214 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:39:08.44 ]
- >>213
欠点が理由だよ 考慮されないのは欠点が大きすぎるから
- 215 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:46:30.09 ]
- toro.2ch.net/test/read.cgi/tech/1330429547/l50
おら、ここで存分にやれや。 まずはおまえの脳内で断定して断言するだけじゃなくて、 計算機科学的な理由をちゃんと挙げるところからなw
- 216 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:47:17.51 ]
- 断定して断言
こういう微妙な悪文に気がつかない人って頭悪そう
- 217 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:53:24.24 ]
- 欠点が欠点が、と喚くだけで、全く科学的定量的根拠が出せない奴もな
- 218 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:54:29.56 ]
- Common Lispでherokuらしい。
ja.reddit.com/r/lisp/comments/qnv47/common_lisp_on_heroku/ Schemeでこういうのないの?
- 219 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:55:24.51 ]
- sicpから
(define (gcd a b) (if (= b 0) a (gcd b (remainder a b)))) この関数を(gcd 206 40)で実行する 遅延評価と普通の評価でそれぞれ何回remainderを呼び出すのか? 答えは、遅延評価だと18回、普通の評価だと4回 遅延評価にどれだけ欠点があるのかよく示している例
- 220 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:56:37.21 ]
- >>219
問題はExercise 1.20 ぐぐれば問題も答えも出てくる 英語だけど
- 221 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 12:57:11.72 ]
- >>214
遅延評価に考慮すらされないほどの欠点があるの? どんな? 最近の情報工学を学んだ人間なら、遅延評価は普通に考慮に入れると思うけど それほどの欠点があるとは知らなかったよ
- 222 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:00:59.99 ]
- マクロなんて大昔から知られていた手法なのに
なんで一般の言語で使われないのか? S式なんて大昔から知られていた手法なのに なんで一般の言語で使われないのか? Lisp布教者の主張するような利点だけじゃなくて 欠点も多いからだろ
- 223 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:11:09.37 ]
- マクロは使われてる。S式じゃないとそれほど便利じゃないけど。
S式が一般の言語で使われないのは、S式を使いたいやつは皆Lispを使うから。 Lispに欠点が多いのは事実だけど、 マクロやS式が普及しないのは欠点とかそういう次元の話じゃない。
- 224 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:21:47.40 ]
- Lisp人口=S式使いたい人数か
少ないな
- 225 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:27:21.21 ]
- >>224
データ構造の表現だけなら、JSONやXMLみたいな もう少し便利な品があるからね
- 226 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:54:08.21 ]
- エディタのサポートがないと書きづらい事も普及を妨げていたと思う。
最近は他にもそういう言語あるけど。
- 227 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:18:24.16 ]
- 世間のビジネスの殆どは単純な事務処理だから、マクロやS式無しでも出来るだけの事。
- 228 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:29:38.38 ]
- 単純な事務処理以外の分野でも
殆ど使われてないのだが
- 229 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/09(金) 14:33:07.71 ]
- >>223
> S式が一般の言語で使われない S式が使われた言語は LISP と呼ばれてしまうので LISP でないS式言語が存在し難いんだと思う。
- 230 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:35:59.17 ]
- >>229
汎用の言語でLispと言ったらCommonLispとSchemeとClojureくらいしか知らないんだが
- 231 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:45:25.16 ]
- そこに収斂するまでどれだけの血と汗と紆余曲折があったと思ってんだ!!
- 232 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:02:28.87 ]
- >>231
汗はなんとなく分かるけど、血と紆余曲折の具体的事例が思い浮かばない
- 233 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:07:20.62 ]
- Lispの方言の数を舐めるなよ。
- 234 名前:デフォルトの名無しさん [2012/03/09(金) 15:11:04.31 ]
- Cygwin-1.7.8でGuile-2.0.5のビルドが通らない。libffiのテストが通らない。
- 235 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:21:07.33 ]
- Allegro Common Lisp (ACL) の試用版を使っています
(list "*" '(2 3 4) '(a b) "!" '(8 9 0)) こういう文字列とリストからなるリストをもとに *2a!8 *2a!9 *2a!0 *2b!8 *2b!9 *2b!0 *3a!8 ... と続くものを出力したいです(文字列とリストは0回以上ランダムに表れます) リストについては命令型言語でいうところの for (...) for (...) のような処理をすることになりそうですが どこから手をつければよいかわかりません おそらくmapcarを使ってリストを作り直す必要があります? どうすればよいですか
- 236 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:28:42.47 ]
- ここschemeスレなんだけど
- 237 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:30:48.13 ]
- じゃschemeではどうやるか教えてください。
- 238 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:33:18.46 ]
- 頑張れば書けるだろ
- 239 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/09(金) 15:33:25.27 ]
- >>235
Common Lisp の闇である loop と format が大活躍する場面だな!!
- 240 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:44:11.86 ]
- Lisp族の総合スレだろ。
- 241 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/09(金) 15:50:15.41 ]
- >>235
>>237 こんな感じかな。 (define (power-display lst) (let loop ((acc '()) (next lst)) (cond ((null? next) (for-each display (reverse acc)) (newline)) ((list? (car next)) (for-each (lambda(x) (loop (cons x acc) (cdr next))) (car next))) (else (loop (cons (car next) acc) (cdr next)))))) (power-display (list "*" '(2 3 4) '(a b) "!" '(8 9 0)))
- 242 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 15:51:56.19 ]
- とりあえずloop系のゴリ押しか、再帰で書けそうだけど、
リスト処理だからmap系の上手い手がありそうな気がするな。
- 243 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:06:21.13 ]
- プログラム書いてくれるプログラムまだー
- 244 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 16:47:03.23 ]
- コンピュータが人間に合わせてくれるのではなく、コンピュータに合わせて人間の頭を
作り変えろ、というのがLISPの思想。
- 245 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 17:12:13.22 ]
- 1960年代ではその考えは間違い。
- 246 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 19:01:04.41 ]
- lispのコードが読みやすいのはコード量が少なくなるから
少なくなる要因は1つの行に複数の関数を押し込めるから 同様のことは、オブジェクト指向のチェーンメソッドでやっている プログラマの目の動きを考えたとき、その視点は左から右、上から下に動くのが普通。 だから、チェーンメソッドはポーランド記法よりも理にかなっている。 けれども、チェーンメソッドである以上はオブジェクトでなければならない。 行数を短くし、1行に複数の関数を押し込めて自然な流れで読むためには、 逆ポーランド記法が理にかなっているといえる
- 247 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 19:28:34.82 ]
- >lispのコードが読みやすい
要出典
- 248 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 19:32:02.72 ]
- よって、逆ポーランド記法で書けるschemeが最も自然な流れで読めるという結論に至ったわけだが
- 249 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 19:34:38.31 ]
- >>247
慣れの問題なだけだからなー XMLのタグよりよっぽど楽だし、構文の覚えやすさならLispの右に出るのってFrothくらいじゃないのか?
- 250 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 19:37:59.63 ]
- 一語ずつ順番に読むならそうかもしれんが
いくつか語句を先読みしてまとめて解釈するからな 逆ポーランド記法が読みやすいなら数学なんかもそうなっているだろうし
- 251 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:05:04.34 ]
- (set! bar (fn1 (fn2 (fn3 (fn4 "foo"))))) <- "foo"まで読んでから視点が折り返し
bar = fn1(fn2(fn3(fn4("foo"))) <- 上に同じ bar = "foo".fn4.fn3.fn2.fn1 <- 左から右へ一発。オブジェクトでないとダメ "foo" fn4 fn3 fn2 fn1 bar! <- プリミティブな型から自然に変換できる! vimのマクロがforthで書かれていたなら、エディタ戦争はまだまだ続いていたと思うね
- 252 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 20:06:55.12 ]
- >>248
schemeって逆ポーランド記法なの? 1 2 + みたいな記述するん?
|

|