- 1 名前:潜伏していた1 mailto:sage [02/02/16 16:55]
- 何とか生き残れました。
前スレ pc.2ch.net/test/read.cgi/tech/996131288/l50 関連 >>2 以降
- 115 名前:デフォルトの名無しさん mailto:sage [02/05/05 14:57]
- 副作用のある関数型言語は
中途半端な感じが払拭できないということでいいのか?
- 116 名前:デフォルトの名無しさん [02/05/05 15:21]
- Ruby >>>>>>>>>>>>>>>>>>> Haskell
- 117 名前:デフォルトの名無しさん [02/05/05 17:42]
- モナドがあまりに手続き型っぽすぎるので、
Haskllを関数型を知らない人に触らせると、 モナドでC言語かよ!ということをやろうとする。 しかして正しく正面玄関から入ろうとすると、難解過ぎる。 MLの方がそういう意味でも適度に関数型な気がする。 純粋関数型を言うならば、遅延ストリームでゴリゴリ書くのが基本に なってるような言語であるべきかなと思ってみたりする。
- 118 名前:デフォルトの名無しさん [02/05/05 18:12]
- いいんじゃねえの?
多目的言語なんだから。
- 119 名前:Super Combinator [02/05/05 23:13]
- >>104
> Haskell(特にGHC)って例外処理とか、入出力じゃない副作用も > どんどんIOモナドに入ってるじゃん。 最近Haskellの動向は探ってないんだけどこれ本当? IOErrorがIOモナドmoduleにあって、 HaskellがIOError以外ろくに例外をsupportしないだけなんだと思ってたよ。
- 120 名前:デフォルトの名無しさん mailto:sage [02/05/06 02:01]
- 勉強中だからよく分かんないけど、state モナドの事?
- 121 名前:デフォルトの名無しさん mailto:sage [02/05/06 03:57]
- MLと(Haskellとも)離れますが、
モナドを使うと、手続き型言語を 関数的に解釈することができますか?
- 122 名前:デフォルトの名無しさん [02/05/06 10:53]
- >>121
「関数的に解釈」の意味がよくわからない。 Haskellでインタープリタが書けるか? という意味じゃないよね。
- 123 名前:デフォルトの名無しさん [02/05/06 11:38]
- sato-www.cs.titech.ac.jp/prism/index.html
- 124 名前:デフォルトの名無しさん mailto:sage [02/05/06 12:35]
- >>122
モナドを使うと、どうみても副作用な操作でもfunctionalな 操作と解釈できるわけですが、それと同じように手続き型言 語のプログラムに純関数的な意味を与えることができますか? という意味です。
- 125 名前:デフォルトの名無しさん mailto:sage [02/05/07 00:50]
- >>124
Idealized Algolとかいうのがなかったっけ。
- 126 名前:デフォルトの名無しさん [02/05/07 01:16]
- グローバル変数が見当たらないんですが・・・
- 127 名前:デフォルトの名無しさん mailto:sage [02/05/07 18:47]
- >>121 >>124
できません。 強引に無理矢理こじつけることならできるかもしれないけど意味無し。
- 128 名前:デフォルトの名無しさん mailto:sage [02/05/07 19:13]
- >>124
モナドを使えば、代入、逐次的実行、手続き型ライクなI/O、例外などを 純関数型の枠組みで扱える。gotoくらいならもともとモナドに関係なく 等価な純関数型言語に変換することができる。 Cは無謀だがMINIMAL BASICくらいなら、純関数型とみなすことは可能だろ う。
- 129 名前:Super Combinator [02/05/07 20:21]
- >>124
Denotational semanticsじゃ駄目? domainの性質がやっかいになるから、いいことないけど。 そもそも「簡単に」できるくらいなら、関数型言語の存在意義が…
- 130 名前:デフォルトの名無しさん [02/05/07 22:49]
- Haskellで書いたプログラムに、関数的意味を与えうるなら、
手続き型の言語のインタープリタを Haskell で書いたら、 その言語の意味を与えたことになる? ならない?
- 131 名前:デフォルトの名無しさん mailto:sage [02/05/07 23:11]
- >>130
なるんじゃない? きちんとやれば操作的意味論だろ。
- 132 名前:デフォルトの名無しさん [02/05/08 00:35]
- 結局、Haskellは非正格言語なのが問題じゃない?
実際に各項が何時評価されるか?どういう順番で評価されるか? ということが予測しづらい(できない)からねー。 その点、正格言語や手続き型言語は評価の順序が一目瞭然だからねー。 Prologにカットオペレータがあるように、Haskellも競争書き込みで 評価の順序を、ある程度コントロールできる様にしたらよいのかな?
- 133 名前:デフォルトの名無しさん mailto:sage [02/05/08 00:39]
- >>132
?? 問題なのは結果であって、 順番なんてどうでも良いだろう。 順番じたいが望む結果に含まれる (例えば入出力とかGUIとか)なら、 そこだけモナド使えば良いしさ。
- 134 名前:デフォルトの名無しさん [02/05/08 07:47]
- >>133
133も書いていますがコンピュータの入出力は ストリームを基本としているものが多いですよね。 しかし、ストリームにとって並び方も結果の内ではないでしょうか? プログラムは外部と入出力して、なんぼのものだと私は思っています。 ゆえにストリームのようなモノに対して実行順序がコントロールできることは プログラミング言語にとって重要であると思います。 そうじゃなきゃPrologもカットオペレータなんて付けなかった と思います。 あと私のような消防には、実行される順序が予測できないと デバッグしづらいです。(もしかして、こっちが本題か?)
- 135 名前:デフォルトの名無しさん mailto:sage [02/05/08 08:13]
- >>134
ほんとに消防だな。Haskellだって ストリームの順番が狂うわけはないだろう。 ストリームは「いくらでも長くなりうる列」 というデータだ。関数型の基本はデータの値を 求めることなんだから、モナドなんか用いなくたって ちゃんと求まる。
- 136 名前:チュウボウ [02/05/08 09:56]
- なんで副作用って困るの? よく聞くはなしでは
副作用あり=>参照透過性がない=>数理論理的でない 数学って、まったく副作用のない構成になっているの?
- 137 名前:デフォルトの名無しさん mailto:sage [02/05/08 10:03]
- > 数学って、まったく副作用のない構成になっているの?
副作用がなんなのかわかってる?
- 138 名前:デフォルトの名無しさん [02/05/08 10:04]
- 副作用が無ければ、デバッグ簡単
- 139 名前:チュウボウ [02/05/08 11:10]
- >副作用がなんなのかわかってる?
オレの理解 状態という一種の記憶域のようなものがあってその値が 変わること。 数学ではオートマトンとか除けば、状態のような概念は 知らない。
- 140 名前:デフォルトの名無しさん mailto:sage [02/05/08 11:55]
- >>136
評価順序に依存してるから
- 141 名前:チュウボウ [02/05/08 12:32]
- 順序なしで考えるより、順序を指定されて考える方が楽じゃない?
- 142 名前:デフォルトの名無しさん mailto:sage [02/05/08 12:34]
- >>141
そう思えるのはモノが単純な場合だけ
- 143 名前:チュウボウ [02/05/08 12:49]
- 状態(もの)と動作(働き)があった方が考えやすい気もする。
主語+述語が人間の頭にあってるような気がする。 (状態があるならば副作用があると思ってる) ペトリネットなんかかじってみてると、そんな気がしてきた。 ttp://www.aichi-pu.ac.jp/ist/~qua/intropn/intropn.html
- 144 名前:デフォルトの名無しさん mailto:sage [02/05/08 15:04]
- 副作用って、関数が値を返す以外の何かの作用を起してしまうことでしょ。
「なぜ関数プログラミングは重要か」に副作用が無い事のよさが力説されてた。 実感湧かなかったが。
- 145 名前:デフォルトの名無しさん mailto:sage [02/05/08 18:09]
- >>143
日本語は主語なんかなくても良い言語だよ。英語カブレめ(w 実際この書き込み(145かな?)のなかに主語のある文は一つもないが、 意味はちゃんと通じるだろ?
- 146 名前:5月病 [02/05/08 18:24]
- オレも人並みにSOE本ながめたりして、haskellの理解に
努めたわけよ。モナドの意味もつかもうとしてがんばった んだけど、あるときふと、こんなに無理して副作用さけよう という努力はなんなんだろうと感傷的になるわけよ。
- 147 名前:デフォルトの名無しさん mailto:sage [02/05/08 18:26]
- Cでグローバル変数はやめよう、と似たようなもんじゃないの?
- 148 名前:チュウボウ [02/05/08 18:35]
- >>145
>日本語は主語なんかなくても良い言語だよ おお、そうであった。日本語は述語だけでつうじるのだ。 日本語こそ真の関数型言語であった。なんてわけないか。
- 149 名前:デフォルトの名無しさん mailto:sage [02/05/08 18:47]
- >>146-147
つーか… プログラムって要するに「入力と出力の関係を記述する」 ってだけで良いはずなのに、状態を持ち出すとよけい面倒に なることも多いでしょ。
- 150 名前:5月病 [02/05/08 19:00]
- モナドを使い、高階関数を使い、入力と出力の関係だけで
ストイックに記述する。そうすると見えるすばらしい世界 を教えてください。
- 151 名前:デフォルトの名無しさん [02/05/08 19:02]
- >>149
> 入力と出力の関係を記述する 時系列的な入力と出力の表現には内部状態があった方が記述が楽。 あと、入力の長さが不定なときも。 だから入力に対して反応するタイプのプログラムでは状態記述がないと不便。 >>145 主語がなくていいのは主語が明らか(容易に推測可能)な時だけだよ。 フォーマルな文章では日本語だって主語が必要。ここはかなりインフォーマルだからね。 ちなみに英語でも命令形などでは明らかな主語が省略されている。
- 152 名前:デフォルトの名無しさん [02/05/08 19:14]
- >>151
なんで、ストリームやモナドなどではプログラムの動作が完了した時点では 入力が決定して、出力も決定する筈ということに注目して、 実行時に対応関係を組み立てるわけだ。
- 153 名前:デフォルトの名無しさん mailto:sage [02/05/08 19:19]
- 無限列から無限列への対応関係を陽に書くことはできないが、
無限列の有限部分列から有限部分列への対応関係なら書ける。 そしてその対応関係が再帰的に定義できているなら、 限りなく計算を続けられる。 ただ、有限部分列の入力から続きを計算する際に何度も同じ計算が 繰り返される場合がある。そういう場合は内部状態としてメモしておけば 計算効率が改善される。
- 154 名前:デフォルトの名無しさん [02/05/08 19:21]
- >>153
現実的にはどんなケースがありますか?
- 155 名前:デフォルトの名無しさん [02/05/08 19:39]
- 無限ストリームはメッソドの呼び出しを遅延評価するように
しておけばJavaなんかでも再帰的に記述できるよ。
- 156 名前:デフォルトの名無しさん mailto:sage [02/05/08 19:49]
- >>154
httpプロクシサーバとか。 リクエストは無限列とみなせる。 以前にあったリクエストなら、内部状態としてキャッシュしとけば 速くなる。この場合でも副作用は別に必須じゃないけどね。
- 157 名前:デフォルトの名無しさん mailto:sage [02/05/08 20:42]
- 多分もっと技術レベルが高かったら萌えるんだろうなぁ。
今はC、C++、C#、Javaで手一杯だよ・・・
- 158 名前:デフォルトの名無しさん mailto:sage [02/05/08 20:47]
- >>156
副作用が絡むのは配列やオブジェクトの部分更新とかが絡むときが典型。 もちろん更新する値以外も全部複製してしまえば副作用は消せるが、 効率は・・・・・・(ガクガクブルブル) ---- >>155 遅延評価は評価の仕方を「メモ」って行くわけだが、 結構、後でそのメモ・ツリーを辿るのに時間がかかったりする。
- 159 名前:153 mailto:sage [02/05/08 20:50]
- >>157
てひひひー。C#は全然把握してないッスー。
- 160 名前:デフォルトの名無しさん mailto:sage [02/05/08 21:19]
- C#っていってももともとは.net frameworkのために作られた言語だからね。
シンタックスだけはJavaに似てるけど。逆に言語から仮想環境を想定するとしたら どんなものになるんだろね。Hakell、というより関数型言語全般のために 作られたようなもの。あるとしたらどんなもんでしょ?
- 161 名前:153 mailto:sage [02/05/08 21:28]
- 仮想環境ッスかー?何ッスかー?
- 162 名前:デフォルトの名無しさん [02/05/09 01:26]
- Parallel Graph reduction Virtual Machine (PGVM) ?
- 163 名前:134 [02/05/09 01:31]
- >>135
>ストリームは「いくらでも長くなりうる列」というデータだ。 確かに漏れも、そう思います。ストリーム() しかし、haskellのモデルではIO入出力はストリーム(ぎリスト)ではないですよね。 ということは結局、評価の順序が入出力に影響するはずですよね。 評価の順序を強制するためにモナドというものを利用しているんじゃないですかねー? どうなんでしょ。
- 164 名前:デフォルトの名無しさん [02/05/09 01:48]
- www.yfcbookshelf.com/ml_lisp_scheme.htm
ここの下の所に「Programming Languages:Concepts and Constructs 2/E」 の「日本語訳版を期待」という文字が見えるんですが、今翻訳中なのでしょうか? もしそうなら超期待!! >>158 どうも効率面を問題にされているようですが、 私自身たいして関数型言語の経験はありませんが、 仕事の関係上感じている事です。 コンパイラ作ってると、この副作用がないというのが 結構オプティマイズに有効だったりするので、 結構これからの言語の核にすえるのは悪くないと最近思ってます。 計算の依存関係が明白でないと最近のスーパスカラーみたいに 命令スケジュールが必要だと面倒です。 全体的とはいわなくても部分的には関数型言語が高速化への寄与大きいと考えています。 計算機の並列度が上がってくると、少し考え方を変えてみるのも悪くはないと思っています。 ちなみにモナドはあんまり良くわかっていません。(TT) だれか教えてくれー
- 165 名前:デフォルトの名無しさん mailto:sage [02/05/09 02:25]
- >>163
昔のバージョンではストリームでI/OやってたんだよHaskellは。 I/Oエラーが扱いにくくってなあ… モナドの方が楽だよ。
- 166 名前:134 [02/05/09 02:43]
- >>165
本当ですか? 何時の頃のモノなんでしょう? 処理系の名前とバージョンを教えてもらえませんか? >I/Oエラーが扱いにくくってなあ… >モナドの方が楽だよ。 たしかに、そうですね。 うーん、モナドから逃げてるのかなー?俺は
- 167 名前:デフォルトの名無しさん mailto:sage [02/05/09 02:45]
- モナドを意味づける(動作を定義する)のにストリーム使えるしね。
- 168 名前:デフォルトの名無しさん [02/05/09 02:46]
- 副作用推進派のかた、もっと高階関数を活用してみては
どうでしょう? 関数も各引数を繋ぐための糊だと考えると 副作用が無いほうが嬉しいのでは?
- 169 名前:158 mailto:sage [02/05/09 02:50]
- >>164
効率は計算機上での実行の際のことです。 ・・・・・・というか効率を考えた動作をガチガチにプログラマが記述する際に 場合によってはあるほうが便利ということですね。 一方、最適化のためのプログラムの解析においては 一般に副作用がないほうがやりやすいのは確かだと思います。 だからこそ代入を消してSSAなんて形式に落としたりもするんでしょうし。
- 170 名前:158 mailto:sage [02/05/09 02:51]
- >>168
行列を配列並みの高効率で実装できる方法があるなら是非そう致したいと。
- 171 名前:158 mailto:sage [02/05/09 02:54]
- 引数で指されるオブジェクトがコピーのコストが気にならないほど小さいうちは
それほど悩ましくないんですが・・・・・・。
- 172 名前:デフォルトの名無しさん mailto:sage [02/05/09 02:57]
- >>166
Haskell 1.1まではそういう仕様だった。全ての準拠処理系がそうなって たはず。stream I/Oとcontinuation-based I/Oの両方が使えた。 www.haskell.org/definition/haskell-report-1.1.tar.gz Monadic I/Oがあんまり便利なんで今は全部そっち。
- 173 名前:デフォルトの名無しさん mailto:sage [02/05/09 03:04]
- >>170
配列使えばいいじゃん。副作用なしの。 SISALっていう関数型言語がそうやって、スーパーコンでも Fortranに負けない性能出してたよ。 Fortran厨は他の言語が書けなかったので普及しなかったが。
- 174 名前:デフォルトの名無しさん mailto:sage [02/05/09 08:17]
- なんかこのスレ人増えたな。
- 175 名前:158 mailto:sage [02/05/09 09:51]
- >>173
www.sys.uea.ac.uk/~jrwg/Sisal/index.html を読んで見てるけど、やたら配列に特化した言語だなぁ。APLを思い出したよ。 サワリの部分を読んでの感想としては、 配列に特化した構文が多すぎるし、拡張性にも疑問が残る。 この言語を実装する上で研究された内容(解析や最適化の技術)は有益そうだが、 それをつかって書けと言われると結構苦痛かも。 CやFortranのソースに混ぜられると言われてもねぇ。
- 176 名前:158 mailto:sage [02/05/09 10:01]
- でついでに、「スーパーコンでも」というよりは
むしろ「スーパーコンのために」開発されたようだ。 スパコン以外にも移植はされているようだが、 どうもメインの技術ははデータ並列っぽい気配が。 もっと詳しく読んでみないと判らない部分もあるが、 そうなると今時のマシンの記憶階層と マッチするかどうかは些か怪しげ。
- 177 名前:Super Combinator [02/05/09 11:43]
- MonadとInfinite listの関係について知りたければ、
"Comprehending Monads", Philip Wadler読め。面白い。
- 178 名前:デフォルトの名無しさん mailto:sage [02/05/09 13:23]
- >>176
文句の多いヤツだな。
- 179 名前:デフォルトの名無しさん mailto:sage [02/05/09 15:07]
- >>158 は >>173 を「Sisal 使えば?」と読んでそうな感じだが
>>173 は「Haskell の副作用無しの配列使え」と言ってるのだろう。たぶん。
- 180 名前:デフォルトの名無しさん mailto:sage [02/05/09 20:50]
- >>179
どんな実装してるんでソ。>「Haskell の副作用無しの配列使え」 私が読んだ何件かの「副作用なし配列」の論文は皆頑張っていたけどヤパ−リ オーバーヘッドが大きくて生の配列ほどには早くない・・・・・・。
- 181 名前:デフォルトの名無しさん [02/05/09 21:06]
- >>132
>Prologにカットオペレータ カットオペレータ思い出した。これでProlog嫌いになった。 ところで、Prologも関数型かな? 副作用ないみたいだし。 真偽の2値のみを返すと考えられるかな。もっとも偽の値が 返ればストップするので真のみ返るが。
- 182 名前:デフォルトの名無しさん mailto:sage [02/05/09 21:22]
- >>181
関数型じゃないね。論理型。 項の「値」を求めてるわけじゃない。 定理を満足する変数の値の組(代入)を求めている。 両方を組み合わせた関数論理型ってのもあるけど。
- 183 名前:第5世代はどうなった [02/05/09 22:51]
- >>182
論理式の値を求めるのでなく、妥当な推論をするんだった。 unificationできなきゃ終わりという形式だったね。 Hugsのライブラリーに簡単なPrologあるね。 unificationなんかはもともとhaskellにあるから、 簡単に実装できるようだ。 そういえば、カットオペレーターもhaskellで実装 してたかな。
- 184 名前:デフォルトの名無しさん [02/05/10 00:36]
- haskellは非正格言語だからデバッグし辛いのでは?
副作用がありまくる手続き型言語や正格言語ではデバッグで 苦労しない。というかデバッグしやすい。 非正格言語の優秀なデバッガって無いからね。 一つでもモデル(非正格言語のデバッガのね)が出来ればね。
- 185 名前:デフォルトの名無しさん mailto:age [02/05/10 03:55]
- Mondrianって言語がHaskellをコンパクトにして
OO対応にしたような言語で、.NETにも対応してるらしい んだけど、この言語ってどうですか? www.mondrian-script.org/
- 186 名前:デフォルトの名無しさん mailto:sage [02/05/10 03:57]
- >>184
ていうか、副作用が無いってのはようするに 思わぬバグが混入しないようにする効果があるわけだから、 デバッグ以前にバグが混入しにくいのでは?
- 187 名前:デフォルトの名無しさん mailto:sage [02/05/10 04:05]
- 代わりに呼び出し関係が入り組んでくるからねぇ。>>186
やっぱ銀の弾丸はないもんだよねぇ。
- 188 名前:デフォルトの名無しさん [02/05/12 02:28]
- >>186
でもバグが無くなる訳ではないでしょ? 仕様のバグという根絶不可能なバグがあるんだから。 やっぱデバッガ必要でしょ。
- 189 名前:デフォルトの名無しさん mailto:sage [02/05/12 10:10]
- >>188
既存のデバッガ的な考えは合わないよね。
- 190 名前:デフォルトの名無しさん mailto:sage [02/05/12 19:07]
- >>184
副作用がないので Unit Test あたりが向いてるかも。
- 191 名前:デフォルトの名無しさん [02/05/13 22:37]
- www.haskell.org/libraries/#testing
のあたりだろうか。
- 192 名前:デフォルトの名無しさん [02/05/13 22:39]
- >>188
仕様のバグとデバッガが関係あるんですか?
- 193 名前:デフォルトの名無しさん mailto:sage [02/05/13 22:47]
- 副作用が無いんだから、
コードの打ち間違いと理論にだけ気をつければ やっていけます。
- 194 名前:Super Combinator [02/05/13 22:57]
- >>192
帰納推論系の人たちで、 間違った具体例の指摘から仕様を直したり、 なんて事が流行ったよね? そのengineのUI programはdebuggerと呼ばれることが多かった。
- 195 名前:デフォルトの名無しさん mailto:sage [02/05/13 22:59]
- なんじゃそら
屁理屈か
- 196 名前:デフォルトの名無しさん [02/05/14 16:02]
- つまり、従来のデバッガの役割は
非常に少なくなると言うことでいいのか?
- 197 名前:デフォルトの名無しさん [02/05/15 00:14]
- デバッガの使い道ってバグを取るためだけの物かなー?
- 198 名前:え? [02/05/15 00:35]
- デバッガをバグ取りに使わないの?
- 199 名前:デフォルトの名無しさん mailto:sage [02/05/15 01:06]
- >>198
プログラミング言語の前に日本語を勉強尻。
- 200 名前:え? mailto:sage [02/05/15 01:16]
- >>199
君こそ根。
- 201 名前:デフォルトの名無しさん [02/05/15 01:24]
- Stream IOを勉強した頃は、同期関係の bugがあったら取り難そうだなあ、
とおもた。 Monadになったら改善できるのかしらん?
- 202 名前:デフォルトの名無しさん mailto:sage [02/05/15 01:28]
- >>198 はすさまじいアフォ
- 203 名前:デフォルトの名無しさん mailto:sage [02/05/15 01:28]
- >>201
並列処理の話?
- 204 名前:え? mailto:sage [02/05/15 01:29]
- >>199 は、すさまじいエロ
- 205 名前:デフォルトの名無しさん mailto:sage [02/05/15 01:38]
- >デバッガの使い道ってバグを取るためだけの物かなー?
他に使い道は?
- 206 名前:デフォルトの名無しさん mailto:sage [02/05/15 02:30]
- >>204 ウザイ
「バグ取りの他に使う」と「バグ取りに使わない」の 区別もつかない糞は小1からやりなおせヴォケ
- 207 名前:デフォルトの名無しさん [02/05/15 12:22]
- >>206
その前にお前は>>205の質問に答えろよ。
- 208 名前:デフォルトの名無しさん [02/05/15 13:45]
- 静的なプログラム検証ツールはデバッガの範疇に入るの?
こういうものが作りやすいのが関数型言語の特徴って言われてるから そっちに期待しちゃうな。あくまで素人の考えだけど。
- 209 名前:C厨房 mailto:sage [02/05/15 14:01]
- lintはデバッガって言うか?
- 210 名前:デフォルトの名無しさん mailto:sage [02/05/15 14:24]
- なんでHaskellスレは厨房がワラワラと寄ってくるんだろ。
無視できない何かがあるんですかねー。
- 211 名前:206ではないが [02/05/15 14:28]
- 関数型言語にあてはまるかどうかは知らんが、
他人が書いたプログラム(またはライブラリ)を理解するために デバッガを使って動作を見るのは、けっこうよく使う手だと思う。 >>208 普通は静的な検証ツールはデバッガには含めないと思うけど、 参照透明性の高い関数型言語では、静的/動的の境界はどう定義するんだろう? 例えば多相型の型エラーをデバッグするのって、静的なのか動的なのか…
- 212 名前:デフォルトの名無しさん mailto:sage [02/05/15 14:42]
- 言語理論に比べて処理系のセオリーが
弱い気がするのは気のせいでしょうか?>>211
- 213 名前:デフォルトの名無しさん [02/05/15 15:27]
- >>210
お前のような厨房がな。
- 214 名前:201 mailto:sage [02/05/16 00:31]
- >>203 並列って言うか、そもそも関数型言語は逐次処理でもないじゃん。
木の好き勝手なところを簡約していくっていうか。 そでで再帰的に定義された無限リストの簡約とかまちがうとこわいな。と。 P.Wadlerの入門書にもそれがらみの話あったよねえ?
- 215 名前:デフォルトの名無しさん [02/05/16 01:21]
- 関数プログラミングでは、動作手順を記述するわけではないので、命令プログラミングの
動作をステップ実行する従来のデバッグ手法のイメージとはあいいれないかも。 でも、計算順序を無理矢理いれこむ、モナドIO使いまくりのプログラミングなら 命令プログラミングとおんなじだから、print デバッグができるよ。
|

|