1 名前:デフォルトの名無しさん [04/05/04 14:53] Lisp Scheme ML Haskell FP Mirranda など 関数型言語について話し合いましょう 関連スレ 関数型プログラミング言語ML pc3.2ch.net/test/read.cgi/tech/1012445015/ 関数型プログラミング言語Haskell pc3.2ch.net/test/read.cgi/tech/1013846140/ LISP Scheme Part6 pc3.2ch.net/test/read.cgi/tech/1031560687/ Emacs Lisp pc3.2ch.net/test/read.cgi/tech/1004551074/
231 名前:デフォルトの名無しさん mailto:sage [04/10/23 20:44:56] 高階(たかしな)関数
232 名前:216● ◆SKjzm2Ah6. mailto:tree [04/10/23 20:54:22] >>231 ほんとだ、それで変換できました。 漢字の読み方も知らなくって本当に恥ずかしいです。 うっかり人前で「こうかいかんすう」なんて読んでしまう前に 正しい読み方を教えてもらってよかったです。 ありがとうございました!
233 名前:デフォルトの名無しさん mailto:sage [04/10/23 21:01:37] >>229-230 そうなんだけど、もっといろんな使いかたがあるし、よく使う。 関数型になれると、他の言語でも同じ様な書き方ができることに 気づいたり、あるいは、できないことに気づいたりするよ。 C++は関数オブジェクトを駆使するといろいろできるけど、 ポリモーフィズムが無理だし、第一凄く面倒だからやらないね。 >>232 「こうかいかんすう」であってるよ(w。君のIMEの辞書が良くないだけ。
234 名前:デフォルトの名無しさん mailto:sage [04/10/23 23:10:13] 大昔、国語の朗読で 「先ずもって」を「さきづもって」と読んだ奴思い出したさげ
235 名前:デフォルトの名無しさん mailto:sage [04/10/23 23:20:46] >>231 たかしな関数ワロタww 俺が教わった数学の先生に高階(たかしな)先生という人がいたんだよ。 彼が一大発見して関数に名前がついたら区別がつかんようになるなあ。
236 名前:デフォルトの名無しさん [04/10/24 01:22:23] >>216 あなたの経験からすればそんなに入門は困難じゃない. Ruby 使ったことがあるなら Array#map とか関数型の影響を受けた機能を知ってるハズ (そうとは知らずに使ってたんだろうけど). あと Ruby の Proc はまさに(関数型言語で言う)クロージャの特別な場合. よく使う用例に特化してる分ちょっと弱い. Cの関数ポインタとクロージャの決定的な違い, すなわち「静的スコープ」とか「環境」とかについてゆっくり勉強するといい. 実装を解説してる文書を探すのもといいと思う. 型システムは,あんまり便利で驚くことうけあい. 特にパラメータ型多相(C++のテンプレートと似てる)と OOPで言う「継承によるポリモルフィズム(部分型)」をうまく統合してるのが特徴. Javaとか「なぜこんなに表現力がしょぼい?」って気がしてくる(最近変わりつつあるけど). ただ,ヴァリアント型は構文のせいでよくこんがらがりやすいけどね... (コンストラクタなのか型の名前なのか,あとtypeとdata) Haskellはかなりラディカルな言語なんでCとかとはギャップが大きいけど,面白いことは色々あるよ.
237 名前:デフォルトの名無しさん mailto:sage [04/10/24 01:23:24] sage忘れスマソ
238 名前:デフォルトの名無しさん mailto:sage [04/10/24 02:04:48] なんかいろいろ勉強するっていうと堅苦しいんで、実際に入門ページとか見て 自分でコードしていきながら概念を掴んでいく方がいいと思うよ。で、大雑把 にわかってから、その辺をキーワードに調べていくといいと思う。 # っていう意味で「ゆっくり勉強」って書いたんだったらスマソ 漏れは Ruby を書いても割と関数型スタイルで書こうとしちゃうんだが、けっ こう書けるし、 Ruby 知ってるなら抵抗感はそこまでないと思うな。 型について補足すると、このテの関数型言語には型推論という機能があって、 最低限自分が書きたいところだけ「これはこの型」っていうのを提示すれば後 はオーケー(別に型を敢えて指定する必要はない)、っていうところも、プログ ラマの負担軽減って意味では重要だと思う。 Haskell はラディカルすぎるんで挫折するかもしれないから、 ML 系言語から 攻めて行った方がいいかと思う一方、あれくらいラディカルじゃないと関数型 言語の面白さが全部は伝わらないのかもという気もしていて、どっちを勧める かは正直、悩むな。 漏れは京大の五十嵐先生の OCaml の講義録から興味を持ったクチなので、 Haskell がなんだかわからなかったら OCaml を勧めとくよ。モナドとか型ク ラスとかいった小難しそうな(新しげな)のはなんにもない。そんかわり関数型 言語としては綺麗じゃない。
239 名前:デフォルトの名無しさん mailto:sage [04/10/25 08:31:29] >>236 perlはmy変数(Cのローカル変数と同じスコープを持つ変数)を 無名関数の定義の時点で保存できる。でもグローバル変数は 当然上書きされてしまいます。これはクロージャというには 中途半端な代物なんでしょうか? perl -e '&{&{sub{my $v=1;$f=sub{print $v};$v=2;$f}}}' しかも無名関数を定義した後にも、それを上書き出来ちゃうし。
240 名前:デフォルトの名無しさん mailto:sage [04/10/25 08:47:01] Erlang って全然話題にならないね。やっぱりみんな型付きマンセーなの?
241 名前:/= 236 mailto:sage [04/10/25 09:18:11] >>239 それらの性質は問題ない。 グローバル変数が上書きされたときにクロージャ内のものまで かわるのは普通だし(Schemeでもそう)、local変数がどうなるのかは意味付けの問題。 Haskellではそもそも上書きされたりしないからそういうことは考えなくていい。 # Perlでのlocal変数に当たるimplicit parameterというものがあって # それを使うと上書きされたような挙動が実現できる。
242 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:30:50] >>238 そんなときはConcurrent Clean
243 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:34:33] >>236 > Ruby 使ったことがあるなら Array#map とか関数型の影響を受けた機能を知ってるハズ SmalltalkのCollection#collect:の影響とも言われているな
244 名前:デフォルトの名無しさん mailto:sage [04/11/01 14:28:46] だれかVALIDの言語仕様みられるところ知らない?
245 名前:デフォルトの名無しさん [04/11/28 00:08:44] 型推論のあるOO言語 boo.codehaus.org/Home (www.rubyist.net/~matz/20041126.html より) > 新言語。 > * Python文法 > * 静的型 > * 型推論 > * CLI上で動作
246 名前:デフォルトの名無しさん mailto:sage [04/11/28 13:28:36] つかちゃんと型宣言した方が(・∀・)イイよ
247 名前:Aransk [04/12/13 19:15:16] 関数型言語IoがサーバーとVM,UI付きで発表されました! ttp://www.iolanguage.com/Downloads/ IoDesktop-2004-12-06 vm + server addons + ui addons 20M 日本語ドキュメント: ttp://f21.aaa.livedoor.jp/~kizz/prog/io/Docs_ja.html 純粋に関数型かどうかは別にして一応、 Io is small prototype-based programming language. The ideas in Io are mostly inspired by Smalltalk (all values are objects), Self, NewtonScript and Act1 (prototype-based differential inheritance, actors and futures for concurrency), LISP (code is a runtime inspectable/modifiable tree) and Lua (small, embeddable). となっています。 ぱっと見、良さ気な言語に思えますが、 少なくともbooよりは…。
248 名前:Aransk [04/12/13 19:43:09] Ioに興味なくても、この言語の製作者であるデコルテさんの 好きな言葉だけでも必見の価値があると思う。 ttp://www.dekorte.com/Quotes.html 良い言語を作りそうな感じがするでしょう?
249 名前:デフォルトの名無しさん mailto:sage [04/12/13 21:36:31] ミニマルなプロトタイプベースのOO言語だな。 面白いと思うけどこのスレで扱う内容か? それにしても非常に検索しづらそうな名前だと思うが……。
250 名前:デフォルトの名無しさん mailto:sage [04/12/14 13:22:13] Aranskにマジレス禁止
251 名前:Aransk [04/12/14 16:05:05] LISP (code is a runtime inspectable/modifiable tree) Ioは一応Lispに影響されたとあります。また、イオってギリシャ語で 月を意味するそうです。Lunaに影響されたとあります。 では,関数型言語の総本山の話題です。 ttp://www.lisperati.com/ 見られました? GNU CLispはお奨めと書いてあります。 ttp://ciapek.uci.agh.edu.pl/~kwlodarc/VisualCLisp/en.htm IDEツールもあるようです。 and of course it has a few bugs. If you find one, please, let me know (a fewとoneに味がある…) and if you've got any informations about zionist conspiracies, please, let me know and if you've got any idea about how to solve the middle-east conflict or war in Iraq, please, let me know in other cases, please, don't let me know VCLisp作者のこのコメントは笑えませんか? >>250 don't let me know ってか?(藁)
252 名前:デフォルトの名無しさん mailto:sage [04/12/15 01:31:52] 関数型言語ってどこが一番嬉しいところなんだろう。副作用ないとこ? 抽象化が簡単にできるとこ? クロージャ(無名関数でも可)がつくれるとこ?
253 名前:デフォルトの名無しさん mailto:sage [04/12/15 07:53:16] 言語のコミュニティに馬鹿が少ないとこ。
254 名前:デフォルトの名無しさん mailto:sage [04/12/15 11:18:58] Aranskがいる
255 名前:Aransk [04/12/15 13:24:10] 関数型言語の良いところ: マイナー感が適度にあるところ 言語エリート意識をくすぐるところ 仕事で使う必要がないところ 言語コニュニティー構成員の 世間的知名度の低いところ。 雑誌の記事や本には、ならない。 売れない、儲からない。 それでも関数型言語に拘るのは 馬鹿とまでは言いませんが 結構かすっている人々が多いと 思われ。PrologやAPLなんかよりは まだましですが。今や過去の遺物と なりつつあるCOBOLやCと比べても かなり実用性には欠ける。 その点でRubyなんかのファンと 似た心情と考えております。 タイガーズファンとも…。
256 名前:デフォルトの名無しさん mailto:sage [04/12/15 13:28:00] >>255 他の言語でも応用が効くんだよね。
257 名前:デフォルトの名無しさん mailto:sage [04/12/15 14:19:53] 池沼はスルー
258 名前:デフォルトの名無しさん mailto:sage [04/12/15 20:04:33] Ioはスレ違い 関数型でもないし目指してるとこが違うだろ つーか↓過疎スレなんだから盛り上げてやれよw プロトタイプベース・オブジェクト指向 pc5.2ch.net/test/read.cgi/tech/1070886635/
259 名前:デフォルトの名無しさん mailto:sage [04/12/15 23:23:30] >>256 つーことは、 他の言語にない概念を関数型言語から学べる、というのが一番嬉しい ってことか。
260 名前:Aransk [04/12/16 13:52:29] >>259 マイナー言語に嵌るタイプの人々を観察しながら あぁだぁ、こうだぁ、と評論家的に語るのが 一番嬉しいってこと。これは関数型言語に 限らない。 つまりインドとか中国はまだそんな余裕がない。 JavaやC++なんかの稼げる言語で稼ぐのに 必死であり、マイナー言語なんかをトロトロ やってる暇がないのです。 関数型言語は特に実用性に欠けるでしょう? そこが成熟社会における魅力でもある訳です。 やっても世間的に意味のないことが オタク心理をくすぐる訳なんです。 いってみれば閑散とした田舎の鈍行列車 ですって。 ttp://www.lisperati.com/ これなんかまさにLispの特徴を うまく表現していると思うけどねぇ。 「だから、どうなの?」って言われると 困るところも含めて…。
261 名前:デフォルトの名無しさん mailto:sage [04/12/16 21:14:29] >>260 学際的な視点からの意見は?
262 名前:デフォルトの名無しさん [04/12/17 04:51:08] 【計算機プログラムの構造と解釈】 P212 オブジェクトモデルは、世界をばらばらな部品に分割することで、それを近似する。 関数型モデルはオブジェクト境界に沿っての部品化はしない。オブジェクトモデルは 「オブジェクト」の非共有の状態が、共有の状態よりずっと大きい場合に有用である。 オブジェクトの視点が失敗する場所の例は、量子力学で、そこでは物を個々の粒子と 考えると矛盾と混乱に陥る。オブジェクトの視点と関数的視点の統合は、プログラ ミングより基本的認識論に見るべきものがある。 この「基本的認識論」と呼ばれるものについて知りたいのですが、何か参考になる 文献など、ご存知でしたら教えてください。
263 名前:デフォルトの名無しさん mailto:sage [04/12/17 05:27:38] >>262 認識論の基本ということであれば、観念論的立場だが、ヘーゲルを 読むのがいいと思う。ただし「精神現象学」から入るのは止めた方が無難。
264 名前:Aransk [04/12/17 12:49:16] >>262 「ケインズの哲学」伊藤邦武著 岩波書店 お奨めです。いきなりヘーゲルはきついと思われます。 ご承知の通り、ケインズは本来経済学者です。 従って本書中にある確率論はとっつき易い。 すくなくともヘーゲルより 「オブジェクトの視点と関数的視点の統合は、プログラ ミングより基本的認識論に見るべきものがある。」 的な視点と近いものがあります。
265 名前:Aransk [04/12/17 13:18:56] >>261 ttp://www.shiro.dreamhost.com/scheme/trans/power-j.html 簡潔さは力なり---Succinctness is Power--- Paul Graham, May 2002. Quote: Arcで階乗を高階関数で次のように書きたくなければ: (rec zero 1 * 1-) つぎのような再帰的な表記を使っても良い: (rfn fact (x) (if (zero x) 1 (* x (fact (1- x))))) 私は例をすぐに思い付けないけれど、言語が簡潔すぎることが 可能かどうかという問いには興味がある。ごちゃごちゃ固まって 理解不能なようにしかコードを書けないような言語なんて あるだろうか。誰か例を思い付いたら、是非見てみたい。 Unquote: ttp://sonic64.hp.infoseek.co.jp/2003-06-04.html Perl one liner 集 perl 1行野郎 Quote: ファイルを文字単位ですべてひっくり返します perl -0777e 'print scalar reverse <>' f1 f2 f3 ... Unquote: (rec zero 1 * 1-) と perl -0777e 'print scalar reverse <>' f1 f2 f3 ... と 簡潔性において上が勝るが可読性では下が勝る。 また上の例など返って間違う可能性が高い。 「さこそ」とぞおおせいでたまいけり。 誰が言っているのか、何を言いたいのか つぶやいてみたかっただけなのか、 さっぱり分からん、状況に極めて 類似してないだろうか?
266 名前:デフォルトの名無しさん mailto:sage [04/12/17 18:48:41] よろづに時といふは必らず見るべきものなり -- 樋口一葉
267 名前:デフォルトの名無しさん mailto:sage [04/12/17 21:09:38] >>263 哲学や物理学のようなものではなくて、認知科学や実験心理学のような ところの研究成果で、素人にも分かりやすく整理されている何かおもしろい ものはないかな、と勝手に期待してました。 ヘーゲルは大昔に「論理学」を読んだことがありますが、難しくてさっぱり 分りませんでした。 >>264 >的な視点と近いものがあります。 どう近いんでしょうか?私の知りたいのはアクロバットな認識というよりも、 全ての人が理解しうるようなもっとプリミティブなものです。 というわけで、この話題スレ違いだし電波臭いので終わり、です。
268 名前:Aransk [04/12/26 17:12:25] ドイツ観念論ばりばりのヘーゲルよりは イギリス経験論の流れをくむラッセルーケインズ なんかの方がプログラミングには近いと思うのです。 また、ケインズは本職が経済学ですから 哲学の専門家よりは用語は分かりやすく 基本的なところから入っています。 さらにご承知のとおりケインズは イギリスの大蔵省に長く勤めた実務家です から、論理に浮いたところが少ない。 そのケインズの哲学を日本人が解説して いるいわば新書版感覚で読める本と考えて 推薦しただけで他意はありません。 オブジェクト指向も関数指向も命題の 切り取り方にある訳です。従って ケインズの説くA−>B命題に帰納される 際の蓋然性の束という概念があるいは 「オブジェクトの視点と関数的視点の統合」 という観点になんらかの寄与をするかも しれないなと考えている次第です。
269 名前:デフォルトの名無しさん mailto:sage [05/01/08 12:57:55] Aranskの文章の起承転結をおしえてください
270 名前:デフォルトの名無しさん mailto:sage [05/01/08 18:34:06] 妄想に始まり承、転はなくて妄想に終わる。
271 名前:デフォルトの名無しさん mailto:sage [05/01/09 18:56:33] 全体で見ると恒等写像ですか?
272 名前:Aransk [05/01/16 15:23:47] >全体で見ると恒等写像ですか? 流動的で不確実な世界を モデル化するための視点と 方法における蓋然性の束と 考えて下さい。写像そのものに 既に蓋然性と選択性が入りこんで いるような。
273 名前:デフォルトの名無しさん mailto:sage [05/01/16 18:14:03] 脳の腐りかけた文章発見!!
274 名前:デフォルトの名無しさん mailto:sage [05/01/17 02:54:01 ] 名前をよく見ろ。腐りかけてるんじゃなくて腐ってるんだ。
275 名前:デフォルトの名無しさん mailto:sage [05/01/17 05:12:09 ] >蓋然性の束 これはどういう意味ですか?興味あるので詳しく教えてください。 イジワルではありません。
276 名前:Aransk [05/01/17 17:28:17 ] >>275 申し訳ないが「蓋然性の束」を概念を一から 説明するとなると結構大変なんです。 そこでまず以前にご紹介した「ケインズの哲学」の 該当部分をお読み頂くか、宮台先生のBlogにおける 社会学入門の7回以降辺りを読んで頂けないでしょうか? www.miyadai.com/?blogid=1&catid=7&page=4 凡その概念を把握されてから、それをプログラミング パラダイムにどう応用するのか一緒に考えて みようじゃありませんか?
277 名前:Aransk [05/01/18 18:32:30 ] >>275 ここである程度「蓋然性の束」の概念を ご理解頂ければ: ttp://www.nanoelectronics.jp/kaitai/quantumcom/2.htm 「量子力学から確実に分かる唯一の情報は、確率だけということになる。」 このプログラミングパラダイムへの道が開けるのでは ないでしょうか? 申し訳ありませんが、これ以上は企業秘密と言う事で ご勘弁下さい。
278 名前:デフォルトの名無しさん mailto:sage [05/01/19 00:07:36 ] Arnaskに新書いじょうのものは理解できない ということはよくわかった。
279 名前:Aransk [05/01/20 13:52:53 ] 新書以下にも付き合うのが「しんどい」ってことも 分かってくれた?
280 名前:デフォルトの名無しさん mailto:sage [05/01/20 18:38:23 ] 隔離スレが機能してない。 嫌がらせか?
281 名前:デフォルトの名無しさん [05/01/21 03:39:07 ] このスレッドは天才研究者「Aransk」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 霊長類研究所
282 名前:デフォルトの名無しさん mailto:sage [05/01/21 03:44:59 ] >>281 矛盾。
283 名前:デフォルトの名無しさん mailto:sage [05/01/22 01:35:36 ] >>279 自分の文章を読むのもしんどそうですね
284 名前:デフォルトの名無しさん mailto:sage [05/01/23 00:50:54 ] せっかく本人が削除しやすい名前付けてくれてるんだから 専用ブラウザで見ようぜ。
285 名前:デフォルトの名無しさん mailto:sage [05/01/23 05:43:47 ] キチガイはスルーが一番キツイらしいからね
286 名前:デフォルトの名無しさん [05/02/01 17:16:45 ] MSのF#もだいぶすっきりしてきた様に思いますが… UNICODEやDLも使えるそうな、 案外MLの本命になるかもね? ttp://research.microsoft.com/projects/ilx/fsharp.aspx 1.0リリース直前!MLはF#、ScriptはGroovyで決まりか?(笑)
287 名前:デフォルトの名無しさん mailto:sage [05/02/01 17:18:48 ] なんでそこでGroovy? 意味わかんねえ
288 名前:デフォルトの名無しさん [05/02/01 21:59:58 ] >>286 書き方が Arnask っぽい 本人ですか?
289 名前:デフォルトの名無しさん mailto:sage [05/02/01 22:25:26 ] >>288 アルナスク?だれですか
290 名前:デフォルトの名無しさん mailto:sage [05/02/02 00:24:55 ] シャア=アナルスキ
291 名前:Aransk [05/02/02 15:08:44 ] >>288 なんで分かるの?正しくは「Aransk」だかんね。 >>287 >なんでそこでGroovy?意味わかんねえ 寄らば大樹の陰です。世の中の常識では?(笑)
292 名前:デフォルトの名無しさん mailto:sage [05/02/02 15:26:08 ] アナルスキー関連はこちらへ 超準関数型言語Aransk pc5.2ch.net/test/read.cgi/tech/1082176723/
293 名前:Aransk [05/02/03 15:26:38 ] ワカリマセンよ。 気付いたら関数型言語はF#しか残ってないかも?
294 名前:デフォルトの名無しさん mailto:sage [05/02/03 15:29:36 ] アナル好き?がいしゅつ(←なぜか変換できない)
295 名前: ◆AnalSexRiQ mailto:sage [05/02/03 16:15:33 ] Anarsk関連はこちらへ。以後スルーよろしく 超準関数型言語Aransk pc5.2ch.net/test/read.cgi/tech/1082176723/
296 名前:デフォルトの名無しさん mailto:sage [05/02/03 23:38:37 ] ScriptはRuby!きまってんだろ!? ああ?
297 名前:デフォルトの名無しさん [2005/04/10(日) 15:39:32 ] LLLLLLLLLLLLLLLLLLLLLLLLLLL A . I . LLLLLLLLLLLLLLLLLLLLLLLLLLL
298 名前:デフォルトの名無しさん [2005/04/21(木) 04:36:46 ] >>264 そりゃケインズの確率論(フェロー応募論文のやつだよね)はほとんど哲学だからな。 数学とはいえないだろう。そういう意味では難解ともいえるな。
299 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 08:40:25 ] fortran, C, C++, JAVA, Perl, Python で科学計算の経験はあるのですが、 趣味で関数型言語を勉強してみたいと思っています。ML系、Haskellの どちらかから始めて、次にLispに進もうと思っていますが、前2者のどちら がお薦めでしょうか?
300 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 10:03:11 ] どっちでも可。 ただ、言語として綺麗なのは Haskell。また、 ML は「純粋な」関数型言語で はないので、 Haskell の方を勧める。 つか、挙げてる中では Lisp 系が一番楽だと思う。本もいっぱい出てるし。
301 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 12:03:48 ] >>299 HaskellよりMLの方が馴染みやすいと思うよ。 MLよりもLispの方が馴染みやすいと思うよ。 でも、何の為にそれらの言語を覚えるの? 確かに、違う言語のパラダイムを見ることはプログラミングテクニックの向上にはなるけれど。
302 名前:299 mailto:sage [2005/05/01(日) 23:43:20 ] きっかけは Maxima という数式処理プログラムが lisp で書かれているのを 知ったからです。ただ、lispは括弧が多いし何となく古くさい感じがするので どうせなら新しい言語をと思ったのです。
303 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 03:56:28 ] 言語を覚えるのなんてその先の道程にくらべればたいした手間じゃないんだから 興味のある対象で使われてるものから手をつければいいのに。
304 名前:デフォルトの名無しさん mailto:sage [2005/05/03(火) 07:02:37 ] > 何となく古くさい感じがするので > 何となく古くさい感じがするので > 何となく古くさい感じがするので > 何となく古くさい感じがするので > 何となく古くさい感じがするので
305 名前:デフォルトの名無しさん mailto:sage [2005/05/03(火) 07:53:47 ] >>302 古臭いと言われちゃうとなあ……ええ、古いし括弧だらけですよ? さておき、まずこちら辺りを眺めてみては。 独習 Scheme 三週間 ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme.html やさしい Haskell 入門 ttp://www.sampou.org/haskell/tutorial-j/index.html まあ、他の方が言っているように Lisp 系が一番入り易くはあるでしょう。 善かれ悪しかれ何でもありなので、どんなスタイルでもとりあえず書けるから。 Lisp 系で手続き型っぽい書き方から関数型っぽい書き方に 頭を馴らしていくのが障壁は低めじゃないかなーと。
306 名前:デフォルトの名無しさん mailto:sage [2005/05/04(水) 18:45:21 ] >>302 Lispを侮ってはいけない。 確かに関数型言語の思想からはみ出している部分はあるが、 それでも関数型言語の原型であり到達点であることには疑いがない。 若干宗教的偏執はあるが、 www.shiro.dreamhost.com/scheme/trans/icad-j.html が面白い。下記は引用。 >Java、Perl、Pythonと順に見て来ると、おもしろいパターンに気づくだろう。 >少なくともあなたがLispハッカーであればきっと気づくはずだ。 >各言語は次第にLispに近付いてきている。 >PythonはLispハッカーの多くが間違いだと思っている機能さえコピーしている。 >簡単なLispプログラムなら、ほぼ一行毎にPythonに変換することすら可能だろう。 >2002年の今になって、プログラミング言語はようやく1958年に追い付こうとしている。
307 名前:デフォルトの名無しさん mailto:sage [2005/05/04(水) 21:10:07 ] 関数型言語の勉強を始めたら、Cを書くのが遅くなった。 意味もなく考えすぎてしまうようになった。これはいいことなのか 悪いことなのか・・・
308 名前:デフォルトの名無しさん mailto:sage [2005/05/08(日) 13:54:06 ] ポピュラーサイエンスに「プログラマは頭使わね。」 みたいなこと書いてあったからいいんじゃね。
309 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 11:25:14 ] 遅延評価を実装してる言語って、Haskell, Clean, 他に Python もそうなの? どーせ勉強すんなら普段とは違った性質がある言語がイイと思って。
310 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 18:02:46 ] >>309 Pythonは違う
311 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 20:00:30 ] 遅延評価なんてちょこっと処理系のコード弄ればできちゃうのに。
312 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 20:56:16 ] >>311 ……………まあ、いいや。
313 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 01:19:04 ] >>310 > Pythonはリストの内包表記といくつかの遅延評価メカニズムを備えているから ttp://www.shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html
314 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 01:34:15 ] とはいっても square(2+3) が (2+3) * (2+3) に なるわけではないし
315 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 02:05:56 ] >>313 根拠を挙げるならPythonの遅延評価に関る機能を挙げなさいよ。 「備えている」てだけの発言を引いたって意味ないよ。
316 名前:309 = 313 mailto:sage [2005/05/25(水) 03:41:06 ] Python 使った事ないでつ。 「遅延評価メカニズムを備えている」って書いてあったから、そーなのかなと思ったでつ。 不勉強で申し訳ないでつ。
317 名前:デフォルトの名無しさん [2005/05/25(水) 07:33:05 ] 最近 C が関数型言語なんじゃないかって気がしてきた
318 名前:デフォルトの名無しさん [2005/05/25(水) 15:26:48 ] そうかもね。でも高階関数の型の構文は変だよ。例えば f : (int -> float -> short -> char) * int -> float -> short -> char みたいな型は char (* (* f (char (* (* (*) (int)) (float)) (short), int)) (float)) (short); みたいに書かなければならないし。
319 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 15:31:59 ] 変つうよりも見にくいつうならまぁ同意。
320 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 21:33:48 ] > f : (int -> float -> short -> char) * int -> float -> short -> char これを日本語で読み下してもらえませんでしょうか
321 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 21:44:58 ] A型とint型のペアからB型への関数型. ここで A型は,int型からB型への関数型, B型は,float型からC型への関数型, C型は,short型からchar型への関数型.
322 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 22:16:00 ] あんがとう f : ((int -> (float -> (short -> char))) * int) -> (float -> (short -> char)) 括弧で順位を付けるとこうなるのね
323 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 23:03:58 ] * って デカルト積 ?
324 名前:デフォルトの名無しさん [2005/05/26(木) 03:28:02 ] 関数型アセンブラ言語ってないの?
325 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 06:08:09 ] >>324 関数型CPUがないから、
326 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 08:44:35 ] ある意味Lisp machine上のLispとか?
327 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 08:55:54 ] OcamlのZINC VM pauillac.inria.fr/~xleroy/publi/ZINC.pdf
328 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 17:43:54 ] 確かにLISPマシンはアセンブリと言えるカモナ。
329 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 18:25:55 ] cleanのabcマシーンとか。他にもいくつか抽象機械はあったはず。良くしらんけど。
330 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 18:56:04 ] 抽象機械とVMは違う概念でしょうか
331 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:26:49 ] >>330 >>330 >>330 >>330 >>330 >>330 >>330 >>330 >>330 >>330