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/
331 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:26:49 ] >>330 >>330 >>330 >>330 >>330 >>330 >>330 >>330 >>330 >>330
332 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:28:58 ] >>330 同じと思ってよい
333 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:35:04 ] >>332 ?
334 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:36:22 ] 英単語の略称とその和訳を知ったかぶるスレはここですか?
335 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:36:56 ] >>331 を見て「ループに書き直さなきゃな」とか思う漏れは末期症状? >>330 仮想機械と抽象機械ってどう違うの? 実装と仕様ってこと?
336 名前:334 mailto:sage [2005/05/26(木) 21:37:23 ] つか、単なる和訳じゃん。
337 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:40:21 ] abstract machine 抽象機械: 操作的意味論を定義するためのもの virtual machine 仮想機械: ソフトウェアで記述された機械語インタープリタ。 もし抽象機械があれば、まず抽象機械と対応のとれる実装をする事が多い
338 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 22:13:46 ] 恥ずかしい>334がいるのはこのスレですか
339 名前:337=334 mailto:sage [2005/05/26(木) 22:25:34 ] いみふめ
340 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 22:26:44 ] >>338 おにいちゃん・・・はずかしい・・・
341 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 22:54:03 ] ごめんね。おにいちゃんSECDとかSKとかGとかBとかCAとかLAとか知らないからごねんね。
342 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 23:02:47 ] おにいちゃん、必死過ぎ・・・
343 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 05:42:11 ] 結局>331は何を言いたかったん?
344 名前:デフォルトの名無しさん mailto:sage [2005/06/03(金) 08:24:26 ] 自己準同形と自己同形の違いが分らんですにゃ
345 名前:デフォルトの名無しさん [2005/07/29(金) 23:06:11 ] 初代1です ごめんね
346 名前:デフォルトの名無しさん [2005/09/21(水) 05:36:47 ] OCamlとHaskellのどちらかを勉強しようと思うのですが どっちがいいでしょうか?
347 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 06:40:55 ] OCaml と GHC と MLton(SML) をインスコして試してみたら。 好き嫌いの問題が大きいから、どれがお勧めとかは難しいよ。
348 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 13:35:42 ] Pugs書いた天才を見習ってhaskell一ヶ月やってみたら?
349 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 17:30:11 ] >>346 まず「関数プログラミング」を買って読む。 ttp://www.kindaikagaku.co.jp/bookdata/ISBN4-7649-0181-1.htm それで理解できたらHaskellに進む。 無理だったらOCamlへ進む。
350 名前:デフォルトの名無しさん [2005/09/21(水) 22:33:41 ] 一応、Lispの経験あります。 Haskellの方が先進的ということなので、 Haskellやってみようかと思います。
351 名前:デフォルトの名無しさん mailto:sage [2005/09/21(水) 22:42:20 ] 自分が頭がいいつもりになれるしね
352 名前:デフォルトの名無しさん [2005/09/24(土) 00:43:28 ] 関数型のメリットって、副作用がないことだけ?
353 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 00:46:51 ] 副作用が無いと言うより、副作用を使わないよう強制されるじゃないか。 或は副作用を切り分けられるとか。
354 名前:デフォルトの名無しさん [2005/09/24(土) 01:18:52 ] なるほど。 副作用がないことがあらかじめわかってるからこそできることって なんだろう? そういう機能をC++とかにいれたりしないんだろうか?
355 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 01:22:55 ] >>352 why functional programming matters ttp://www.sampou.org/haskell/article/whyfp.html
356 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 01:57:58 ] >>354 C++に例えるならテンプレートのコンパイルタイムプログラミング 今流行じゃないのか?
357 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 03:35:43 ] >そういう機能をC++とかにいれたりしないんだろうか? まだ研究段階だから。そんなこと言うなら○○入れろとかいくらでも言える。
358 名前:デフォルトの名無しさん mailto:sage [2005/09/24(土) 11:54:50 ] >>352 不必要に副作用に頼らなくていいのがひとつの利点だと思う。 たとえばループをまわすときに毎回カウンタ変数を更新するのは直感的でない。 そこで高階関数を使って典型的なループを抽象化する。 この点では副作用が禁止されていることはそれほど重要ではない (たとえば、副作用を避けて再帰でやっても似た問題がある)ので、 この手法はC++の標準アルゴリズムなんかに取り入れられている。 一方、C++の標準アルゴリズムがそれほど使いやすくない(私見)理由のひとつは、 直感的な「データ構造の値渡し/値返し」が効率上の理由から避けられている事だ。 副作用がなければ、値渡しと参照渡しを区別できないので、 値渡しの直感性を保ったまま参照渡しで実装できる。 さらに、データが変更されないことが保障されていれば、 データ構造の共有もやりやすい。
359 名前:デフォルトの名無しさん [2005/09/24(土) 12:23:24 ] 値渡しと参照渡しの差が無くなるのって重要ですね。 関数型は関数に副作用がないことを仮定できる時、 どこまでコードが抽象化できるかを考えてるわけですね。 JavaやC#、C++を使っていますが、 やはり何か足りないと感じてます。 そのヒントが副作用にあるといいのですが。 まだまだプログラミング言語って改良の余地ありますよね。
360 名前:デフォルトの名無しさん [2005/09/25(日) 23:32:37 ] 関数型言語で HTTPdとかWEBクライアントとか作ってる人っているのかな?
361 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 23:41:16 ] >>360 web browser ttp://pauillac.inria.fr/~furuse/jmmm/index.html
362 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 00:39:04 ] System programming using FP ttp://lambda-the-ultimate.org/node/view/943 そのキャッシュ ttp://www.google.com/search?q=cache:lambda-the-ultimate.org/node/view/943+haskell+web-server&strip=1
363 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 06:59:36 ] >>361 Tkベースで不細工だけど 関数型で書いてる意味あんの?
364 名前:デフォルトの名無しさん [2005/09/26(月) 07:07:40 ] もしかして関数型って実用的じゃないの?
365 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 07:12:22 ] >>363 意味をどのレベルで求めるかに依るんじゃないかな。 ttp://pauillac.inria.fr/~furuse/jmmm/0418/faq-ja.html#caml 以前 ML スレで ML で書いた OS の話が出て来た時も、意味が 有るか無いかって話題になったけど、その議論自体あまり意味が 無いんだよね。要は人それぞれ。 俺は作者の中の人じゃないから、存在するって事以外知らんよ。
366 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 07:14:15 ] >>364 何でそう思ったのかな。
367 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 08:04:12 ] cleangl.sourceforge.net/ ゲームぐらいは作れるよ。
368 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:00:49 ] ゲームなんかどの言語でも作れるけど?
369 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:10:40 ] 言語処理系作るなら関数型がいいよ なんせhaskell覚えたて厨がPugs1ヶ月で作ってるし
370 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 18:01:28 ] >>368 whiteで3D格闘ゲームよろ
371 名前:デフォルトの名無しさん [2005/09/26(月) 20:46:40 ] >>360 MLでWebサーバ作成 pllab.jaist.ac.jp:8080/education/i217-2002/httpd.html
372 名前:デフォルトの名無しさん [2005/09/26(月) 21:55:34 ] C,C++の代わりになる関数型言語の処理系はないってことですね
373 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 22:12:03 ] はいはい何も出来ませんよ
374 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 22:21:24 ] はいはい(馬鹿には)何も出来ませんよ
375 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 22:36:58 ] わざわざ馬鹿と断る意味ありませんよ
376 名前:デフォルトの名無しさん mailto:sage [2005/09/27(火) 00:39:43 ] 関数型言語の代わりになるC,C++もねーだろ
377 名前:デフォルトの名無しさん mailto:sage [2005/09/27(火) 09:04:21 ] おらいら、「関数型言語で書いた」と言いたいだけだろ? TPOをわきまえろ。
378 名前:デフォルトの名無しさん [2005/09/27(火) 15:32:10 ] なぜ関数言語は実用的じゃないのか?
379 名前:デフォルトの名無しさん mailto:sage [2005/09/27(火) 16:04:58 ] え、実用的じゃないなんて意見は初めて聞いたが・・・ >>378 はなんでそう思ったんだ?
380 名前:デフォルトの名無しさん [2005/09/27(火) 17:39:28 ] 世のアプリは関数型で作られてない。
381 名前:デフォルトの名無しさん [2005/09/27(火) 18:49:27 ] Aransk?
382 名前:デフォルトの名無しさん [2005/09/27(火) 18:59:16 ] まあ、実際使われてないのは 実用的じゃないからなんだが
383 名前:デフォルトの名無しさん mailto:sage [2005/09/27(火) 19:21:17 ] ある程度以上の頭を持っていれば非常に実用的。 そうでないと非実用的。
384 名前:デフォルトの名無しさん [2005/09/27(火) 21:14:25 0] なこたぁない。 C言語をリプレイスするだけのメリットがないだけだろ。
385 名前:デフォルトの名無しさん [2005/09/27(火) 22:35:49 ID:0] 「CかC++の置き換え = 主流・メジャー・優秀」か。 >>384 お前Win板とかで「Jane最強!!」とか「Opera糞!!」とかいってるタイプ?
386 名前:デフォルトの名無しさん [2005/09/27(火) 23:24:29 ] 現実から目をそらすな 関数型は使われない、これ事実。 でも俺らは研究する、飯のために。
387 名前:デフォルトの名無しさん [2005/09/27(火) 23:35:50 ] だからさ、別に「他の人々があまり使わない」のはどうでもいいのよ。 僅かな人間だけが使いこなせるこの現状のほうが、俺には都合がいいし。
388 名前:デフォルトの名無しさん mailto:sage [2005/09/27(火) 23:46:34 ] 最近C#やC++とかメジャー言語でも関数型機能が取り込まれてるよな 関数型の知名度が上がるのはこれから
389 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 00:03:19 ] と 10 年前も言われてたが Java が出た。
390 名前:デフォルトの名無しさん [2005/09/28(水) 00:06:34 ] >最近C#やC++とかメジャー言語でも関数型機能が取り込まれてるよな もう関数型にこだわってる実用性の低い言語に価値はないね。
391 名前:デフォルトの名無しさん [2005/09/28(水) 00:09:33 ] >>387 ヒント:統計
392 名前:デフォルトの名無しさん [2005/09/28(水) 01:28:20 ] 【研究】「実社会にも応用可」 "ジョルダンの曲線定理"、世界初の完全証明…信州大教授ら news19.2ch.net/test/read.cgi/newsplus/1127835258/l50 この証明の検証に使用された定理証明システムはMLで書かれたプログラムです。
393 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 07:57:21 ] MLはCで書かれたプログラムです。
394 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 08:51:57 ] 何の事だ?
395 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 10:06:03 ] マシン語最強ってことだろ
396 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 11:27:17 ] 最強論議は小学生まで。
397 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 18:01:43 ] 関数型言語って使われてるの? 使われてないよ派 ├OSが関数型じゃないから派 │├そもそもCPUが手続き的派 │└だからMLでOS作ろうぜ派(古典的行動派(絶滅の危機)) │ └やっぱLISPマシンだよ派(懐古派、第6世代派) ├関数型は遅い派 ├関数型は人間の思考と合わないよ派(右派過激派) │└それは最初に手続き型でプログラミングを習うからだ派 │ └最初にSchemeで教育しよう派(MIT信奉過激派) │ └最初の教育はLOGOだろ派、Smalltalkだろ派(スレ違い派) │ └LOGOは関数型言語だよ派(スレ違い修正派) ├機械語最強派(小学生派) ├おまいらは使わなくていいよ派(過激アカデミック派) └火星人の陰謀だよ派(電波派) 使われているよ派 ├定理証明とか言語処理とかはやっぱ関数型だよね派(穏健アカデミック派) │└HaskellでRubyインタプリタ書きました派(行動派) ├Webサーバーとか実用アプリも書けるよ派 │└Haskellでグラディウス書きました派(行動派) ├C++とかPnutsとかC#とかで関数型は生き続けるよ派(中道派) │└C++もJavaScriptもRubyも関数型言語だよ派(左派過激派、関数オブジェクトがあればみんな関数型だよ派) └うちのシェルはeshだよ派
398 名前:デフォルトの名無しさん [2005/09/28(水) 21:15:26 ] >>397 君すごい。 関数型って開発環境が無いから使われないのかねぇ。 使われない理由を積極的に考えて、そこを改善していけばいいと思う。 行き着く先はC#みたいなものになるかもしれないけど、 たぶんC#よりちょっといいものができる気もする。 APIが移植されてないとかそういう理由かな。 関数型でTomcatみたいなのを作ろうかと思ってるんだけど、 お勧めの言語とOSってあります?
399 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 21:57:24 ] OCaml + Linuxでいいんじゃね?
400 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 22:12:08 ] 俺は小学生派
401 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 23:08:08 ] 俺はツンデレ派(日頃関数型言語の悪口ばっかり言ってるけど、 家に帰るとPythonでバリバリラムダりまくっちゃうの)
402 名前:デフォルトの名無しさん mailto:sage [2005/09/28(水) 23:16:24 ] 純粋関数型以外は関数型言語ではないと思うので, Haskell & Linux
403 名前:デフォルトの名無しさん [2005/09/29(木) 00:19:48 ] 迷うなー そんな時間もないから、OCamlかHaskellのどっちかにしたい。 どっちも気に入ってる言語だから、 誰かもっと決定的な理由が欲しい。 Tomcatのようなミドルウェアを置くか、 ミドルウェアを見せないで、 ASPやJSPみたいなテンプレートエンジンを作ってしまうかでも迷ってる。
404 名前:デフォルトの名無しさん [2005/09/29(木) 00:43:42 ] >>398 >関数型って開発環境が無いから使われないのかねぇ。 開発環境いうよりは、まともなフレームワークが少ないからだと思う 関数型便利だ便利だっていってる人の大半はなんだかんだ理屈ならべて ちっこいプログラムしか書かんから、 そもそもそういうでかいライブラリの需要もすくないんだろーな
405 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 00:49:43 ] 手続き型言語ならCやC++の既存のライブラリを利用する口金合わせも簡単だけど、 関数型はそうもいかんもんねえ。
406 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 02:11:48 ] >MLはCで書かれたプログラムです。 なんてあるけど、一部のlibraryやoptimizerとしてC言語があるだけで、 別に何の言語でもいいんじゃねー?
407 名前:デフォルトの名無しさん [2005/09/29(木) 15:08:18 ] >>406 それはネタだから。 ネタにマジレスかっこ悪いって。
408 名前:デフォルトの名無しさん [2005/09/30(金) 04:30:28 ] 関数型って日本語処理できないから嫌い
409 名前:デフォルトの名無しさん [2005/09/30(金) 21:01:16 ] >>408 がやりたいのは、どの程度の日本語処理だろう。 簡単なテキストフィルターなんかじゃなくて、 もっと高度なことをしたいのかな?
410 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 21:21:46 ] Shift_JISの文字を読んで文字単位の操作をすることがあんまり気を付けなくてもできるとか、そんな風味
411 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 22:35:30 ] 文字なんて整数で扱えばいいじゃん。 なんだかんだでPerlだってそうしてるでしょ?
412 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 23:48:32 ] 408=410じゃないけど、ポイントになるのは、バイト単位じゃなくて文字単位で扱えることだと思う。 この辺の対応状況については、漏れの知っている限りでは、 OCaml: camomile を入れれば、いろんな文字コードのものをひとまず Unicode に変換して、統一的に扱うことができる。正規表現だととりあえず PCRE がUTF対応。 Haskell: Hugs は CVS 版が Unicode をサポートをしているらしい。GHCはまだ怪しい感じ。 GHCで鬼車を使うパッチはある。 Scheme: Gauche はきちんと日本語をサポートをしているという印象がある。 というところで、まとめると「できんこともない」というところか。簡単なテ キストフィルタなら問題ないだろうけど。
413 名前:デフォルトの名無しさん [2005/10/01(土) 00:00:43 ] smlnjをダウンロードしたのですが、どのようにしたらコマンドプロンプトで使えるのですか??初心者のこんな僕にどうか教えてください!!
414 名前:デフォルトの名無しさん [2005/10/01(土) 00:28:19 ] 日本語対応は関数型言語の1つの課題だね。
415 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 00:35:46 ] なんかいきなり賑わいだしたが、なんかあったの?
416 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:05:56 ] > Haskell: Hugs は CVS 版が Unicode をサポートをしているらしい。GHCはまだ怪しい感じ。 GHCで鬼車を使うパッチはある。 GHCはコンパイラ自体の字句解析がEUC以外の多バイトコードに対応してない。
417 名前:デフォルトの名無しさん [2005/10/01(土) 16:15:33 ] mod-perlみたいなのがないと 仕事じゃ使えない。
418 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 22:33:20 ] 仕事 == CGI 書き?
419 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 23:13:08 ] 自然言語処理です。
420 名前:デフォルトの名無しさん [2005/10/01(土) 23:44:18 ] 確かにWEBアプリには使えないね。
421 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 00:12:31 ] 人権擁護法案がとおっちゃいますよ。 この法案聞こえはいいが、日本滅亡の序曲ですよ。 ↓ 小泉が人権擁護法案早期に提出 (05/9/29・国会答弁) live14.2ch.net/test/read.cgi/liveplus/1127977257/ 人権擁護法案ってどんなものなんだ? blog.livedoor.jp/monster_00/archives/cat_847822.html 分かる!人権擁護法案(Flash) www.geocities.jp/kaniku4/ 言 論 弾 圧 に よ り 2 c h も 閉 鎖 か ! ?
422 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 06:18:24 ] CPUが関数型ってどういうの?どんなインターフェイスなの?
423 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 14:07:02 ] 全部遅延されているから、キーボードを叩かないと動き始めない。
424 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 14:29:22 ] >>422 フォン・ノイマン型アーキテクチャだと関数型といえないだろ CPU,メモリ,入出力という発想から脱却しないと
425 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:03:31 ] リスプマシーンあったじゃん。
426 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:31:34 ] しばらくみてたけど質問の意味がわからないな。>>422 Lispマシーンのinstruction setは関数型じゃありませんって。>>425 それが、hardware Lisp CPUであろうと、Virtual Machineだろうと。 言語としてのLisp自体、制御構造とか副作用とかが 沢山ありますよね。それをサポートするためのinstructionで いっぱいで、その全体は関数型とは程遠いですよ。 むしろ、ちょっと風変わりな(保守的・古典的な)プロセッサって感じ。 一方、LispマシンorVMの存在は認めた上で、それが関数形言語の 実装という応用に対して便利か?という議論はありえますが、 これにも僕は否定的です。
427 名前:デフォルトの名無しさん [2005/10/05(水) 23:16:20 ] マウスの入力ってどうすんの?
428 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 23:30:43 ] 関数型CPUはメモリーもレジスタもないんだよ 値は命令間を直接流れる
429 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:42:28 ] CPUっていうか FPGAの設計に落とし込んだりできないだろうか。
430 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:09:02 ] 環境は?
431 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:10:38 ] 関数型っていうのはプログラミングの際に有用な概念であるけれど、計算機の構造上の有用性はあるの?