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/
501 名前:497 mailto:sage [2006/04/19(水) 00:59:45 ] ちょっと、説明がわるかったっすね。。 ただの遅延評価(BOOST とかの lambda)はコンパイルレベルで出来るのでOKなんですけど、 たらいまわし関数を最適な形で処理できる遅延評価をC++で実装したいわけなんです・・・。
502 名前:デフォルトの名無しさん mailto:sage [2006/04/19(水) 01:04:53 ] ああ、ただのthunk化という意味での遅延評価なら難しくないが 完全遅延、すなわちグラフリダクションを実装するのは難しいな。 Haskellをほぼ全て実装することに等しい。
503 名前:デフォルトの名無しさん mailto:sage [2006/04/23(日) 01:56:04 ] Reactive Programmingというものがなんであるかを素人の漏れにも解るように 5分以上かかっても構いませんのでどなたか解説をおながい致します m( _ _ )m
504 名前:デフォルトの名無しさん mailto:sage [2006/04/23(日) 07:18:36 ] 解説してみようと思ったが、「漏れ」「おながい」という言葉が大嫌いなので止めた。
505 名前:デフォルトの名無しさん mailto:sage [2006/04/23(日) 10:06:23 ] Erlangってつかてる人いる?
506 名前:デフォルトの名無しさん mailto:sage [2006/04/23(日) 13:59:55 ] >504 そんなこといわないで、お・ね・が・い♥
507 名前:デフォルトの名無しさん [2006/04/28(金) 00:06:17 ] C++でムリヤリクロージャーする関数書いたら出来た(・∀・)アヒャ!! 一部 BOOST の Lambda で使われてるテンプレート駆使したらほぼ望みどおりのものが出来ましたよ。 自前の Lambda もつくってみたけど、戻り値をTypeList(BOOST では tuple だっけ?)をつかっててクロージャーには使えなかった('A`)
508 名前:デフォルトの名無しさん [2006/04/28(金) 11:31:41 ] 早くそのコードを公開するんだ
509 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 02:03:00 ] >>505 ノシ まあ、あまり関数型言語という意識はないけど。
510 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 12:12:23 ] 自前じゃない実行環境、特にVM系、の近況が分かるページないでしょうか。 JVM, Parrot, C--など。(C--は中間言語かな) >>422 すげー亀レスで、しかもちょっと方向が違うけど、 昔九州大学で、データフロー計算機の上で関数型言語動かしてましたよね。
511 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 12:13:30 ] そういや、一部Haskellを使ったPerl6はあるのに、(Pugs) Parrot上で動くHaskellはないんですね。 List(cons)の実装が非効率的になるからかな?
512 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 14:21:56 ] Parrotの魅力を語ってくれ
513 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 19:01:51 ] Parrotって、Perl6用に使われるVMってことでいいんすか? ちょっとスレ違いかも知れんけど
514 名前:デフォルトの名無しさん mailto:age [2006/07/30(日) 11:27:03 ] 保守age
515 名前:デフォルトの名無しさん [2006/09/25(月) 07:49:03 ] 学生でも教員でもないんだけどJournal of Functional Programmingって大学の図書館とか研究室くらいにしか置いてないんですかね。
516 名前:デフォルトの名無しさん mailto:age [2006/11/04(土) 13:02:33 ] 「関数型プログラム」は「ラムダ計算」と何が違うのですか?
517 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 20:04:30 ] ラムダ計算はプログラムじゃないねぇ
518 名前:デフォルトの名無しさん mailto:age [2006/11/04(土) 22:23:23 ] え? 違うんですか???
519 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 00:07:07 ] プログラムの基礎理論 _で重要な_ 論理体系と言うか数学体系と言うか プログラムが実行されるということの本性をモデル化しようとしたらああなった,ってんだけど # 歴史的経緯はよく知らない
520 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 00:48:00 ] >>516 関数型プログラムって何だろう。 まず一括りにするとややこしいから具体的なものを出してちょうだい。 そして、おそらく現存するものは知りうる限りすべてラムダ計算とはちがう。
521 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 19:39:21 ] >>520 関数を変数として扱えること
522 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 21:24:56 ] >>521 じゃあCは関数型言語ですね! qsortとかbsearchとかどうみても関数を値として使ってます
523 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 21:44:42 ] >>521 でりげーとでいいやん
524 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:08:35 ] 第一級の値
525 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:12:41 ] 型理論!!!!!!!
526 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:14:13 ] Cの関数は第一級だよな。 実行時に作る手段がないだけで。
527 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 22:17:21 ] デリゲートの数学的モデルを教えてください
528 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 23:19:32 ] Haskellは 型付ラムダ式に いろいろ付け加えたものに みえるけど。 (型付と形無しは別物ではあるけど)
529 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 23:21:55 ] やぁ、伊藤君。
530 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 12:20:39 ] 誰?
531 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 13:45:08 ] >>530 ググレカス
532 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 14:21:56 ] で。誰? www.google.co.jp/search?hl=ja&q=%E4%BC%8A%E8%97%A4+Haskell&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
533 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 07:00:43 ] ttp://lambda-the-ultimate.org/node/1853 要約 「最近Lambda the Ultimateへの記事投稿が減ってるんだけど,このまま行ったら消滅しちゃうことになるよ?」
534 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 16:03:28 ] LtU、度々同じ文句言ってるよなw
535 名前:デフォルトの名無しさん [2006/12/01(金) 10:25:30 ] Erlangスレってここでよいでつか?
536 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 20:56:08 ] Erlang スレではないけどここでいいんじゃない。 答えられる人がいるかどうかは知らんけど。
537 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 22:00:04 ] erlangのことどう発音してる? エアランク? アーラン?
538 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 00:18:29 ] アーラン。
539 名前:デフォルトの名無しさん [2006/12/02(土) 00:31:39 ] あーらん
540 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 01:53:14 ] ぇろぁん(鼻音で)
541 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 07:10:28 ] ドイツ語だから、えあらんく
542 名前:デフォルトの名無しさん [2006/12/03(日) 17:51:57 ] アッラーフアクバル
543 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 14:19:57 ] あなあっへんばっく
544 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 01:16:57 ] λ計算スレを情報学板に立ててみました. science4.2ch.net/test/read.cgi/informatics/1165506353/
545 名前:デフォルトの名無しさん [2006/12/09(土) 17:53:53 ] 関数型言語ってI/Oが苦手だよね? キーブレイクで改ページ入れ一定件数ごとにも改ページ入れる帳票出力とか難しくない?
546 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 18:46:24 ] IOが苦手というのも賛同できんが、それはそもそもIOじゃないだろ。 むしろそういうのは得意な方だと思うんだが。
547 名前:デフォルトの名無しさん [2006/12/12(火) 18:39:17 ] 関数型って便利だけど使いどころ難しいよね。 関数を動的に作成するのは魅力的だけど、 「じゃあ、どこで使用すれば効率がいいか?」って言われたら、 うーんってなっちゃう。。 今のところ、「株のスクリーニングの条件を自分でプログラムできる」ぐらいしか アプリケーションへの応用が思いつかないです。 現在の株のスクリーニングとか出来るHPは細かいところまで指定したいのに なかなか出来ないことが多いので。。 他に何かいい適用個所ってありますか?
548 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 19:01:42 ] >>547 自分でプログラムできるのは、別に関数型じゃなくてもいい気がするが、 トレード用のソフトは自前のスクリプトを実装している場合が多い。
549 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 19:08:17 ] >>547 第一級の関数の真価は、そんなマクロというか設計レベルの話じゃなく、 アルゴリズムの実装とか、従来forやらifやらで実現されてきた定型処理のようなものが 簡潔に書けることにあると思う。
550 名前:デフォルトの名無しさん [2006/12/31(日) 19:35:44 ] 質問です。 関数型言語で問題なく日本語を扱えるものには、どんなのが有るでしょうか? haskellは無理みたいです・・・
551 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 20:44:27 ] >>550 Gaucheとか。
552 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 22:18:12 ] >>550 俺も>>551 に一票。 ホント自然に使えてかっこイイ。
553 名前:デフォルトの名無しさん [2007/03/26(月) 20:54:29 ] あげ
554 名前:デフォルトの名無しさん [2007/04/09(月) 12:03:51 ] コンビネータって、実際のプログラミングでどんなトコに使ってどう嬉しいの?パーサ以外にある? Yコンビネータって、グローバルな名前空間を汚さずに再帰関数を受け渡すために使う?ユースケースが浮かばないんだけど。
555 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:16:20 ] 頭がおかしい人の書き込みですので、スルーして下さい。(精神病院担当医師)
556 名前:デフォルトの名無しさん [2007/04/09(月) 12:16:39 ] Yコンビネータの話は普通の言語ではグローバル関係ないか。ローカル名でも、スコープ外の場所でもふつう再帰できるよね。 とするとますますYコンビネータの使い所がわからない。
557 名前:ワロタ mailto:sage [2007/04/09(月) 12:18:01 ] これがオブ脳って奴か そのうち「チューリング・マシーンって実際のプログラミングでどんなトコに役立つの?」 とか言い出す気かw
558 名前:アホ mailto:sage [2007/04/09(月) 12:39:03 ] 虚無空間でのブーツ・ストラップみたいなもんだろ実際
559 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:42:32 ] 理論上重要だからって、それが実際のプログラミングに直接的に役に立たないということにはならないよね。 実際、パーサコンビネータなんて役に立つし。 SKI自体を普通のプログラムから直接使わないだろうけど、 Gaucheのマニュアルでcombinatolic programmingなんて言葉を見たし、 うまく役に立つ方法や方面があるんじゃないの?
560 名前:バカ発見 mailto:sage [2007/04/09(月) 12:49:19 ] 純粋な関数型モデルで再帰を表現でき、 それが単純明快なプログラミング言語モデルの一つとなっている ってだけの話だろ、表面的な所では。 詳しい話はスコットの領域理論を読み直せ>>焼き豆腐
561 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:50:43 ] × 単純明快なプログラミング言語モデルの一つ ○ 単純明快な(純関数型)プログラミング言語モデルの一つの根拠
562 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:53:34 ] 焼き豆腐ってLispやってたんじゃねぇ〜のか? だらしねぇな
563 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:58:01 ] 豆腐の学習態度は、梯子を登らずにいきなり屋根の上に登ろうとする愚挙に似ている。
564 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:13:35 ] コンビネータの元は 関数型言語モデル業界で λ計算とともにその根拠となっている コンビネータ理論だな。 FortranやBNF記法の父 John Backus が ACM受賞講演で語った関数型言語 FP が ちょうどこの理論で作られてたっけ。 その辺りで関数型言語が再評価されて、 現代の関数型言語ブームにつながった、と(おおぼけ) Lispも最初はλ計算に基づいていたけど、 70年代には立派な手続き型言語に堕ちていたな。
565 名前:豆腐って?俺の脳が豆腐って事?まあいいけど [2007/04/09(月) 13:14:19 ] パーサ以外にも、あっておかしくないと思うんだけどな。 CPSみたいにひとつのスタイルって言うかそれベースのライブラリ的なのが。 ないの?
566 名前:デフォルトの名無しさん [2007/04/09(月) 13:15:12 ] 豆腐の話は飛躍ばかりするが ベースが確立されていないので 答ようがない。
567 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 13:16:31 ] 豆腐スレ pc11.2ch.net/test/read.cgi/tech/1176033534/
568 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 18:43:11 ] XML関係はコンビネーターで書かれてるのが多いよ。
569 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 19:14:35 ] それは興味深いですね。 高階関数を使って再帰下降型パーサを構成する といったお話でしょうか? それとも・・・ 金融関係のお話でしょうか?
570 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:43:22 ] 単に「論理式はand, or, not結合子と論理値で構成される」 というのと同じような意味でXMLのelementをCombinatorと呼んでいるだけと思われ。 似たような発言で「Haskll上にDSLを作る」を「HaskellにCombinatorを追加する」と言ってしまうDQNも多し。
571 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:03:35 ] コンビネータって結局何なの? 「自由変数のない関数」って意味ならプログラミング言語のあらゆる関数がそうだと思うんだが。
572 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:16:53 ] >>571 はあ。それは良かったですね。
573 名前:571 mailto:sage [2007/04/09(月) 21:25:27 ] >>572 すまん、素人なので変なことを言ってるかもしれん。 良かったら門外漢にも分かるように説明してくれないか。
574 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:34:02 ] 無意味
575 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:57:29 ] >>573 コンビネータは、ぶっちゃけ 「自由変数のない関数」 で合ってるよ。 んで、プログラム言語のあらゆる関数がそうだと思うのなら、別にそれでも良いよ。間違ってはいないさ。
576 名前:デフォルトの名無しさん [2007/04/09(月) 22:04:09 ] なんという結論 さすがFランク
577 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:18:37 ] 自分の認識だと、引き数に関数のみ取り、 引き数で受け取った関数を何らかの形で組み合わせたものを返す以外のことをしない関数、 みためでいえば、 中身には引き数以外の名前が現れない関数、って理解だけど、あってる?
578 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:44:20 ] コンビネータ 「コンビネーター計算は、λ計算と同等のことを変数やλ抽象を持たず、 ただ適用だけをもつシステムで実現しようとしたものであって、λ計算とは別物」というのは同意。 ただ、(コンビネータ計算ではなく)ラムダ計算の文脈では、単に「自由変数を含まないλ式」 という意味で結構広く使われているように思いますし、私もそのように理解してました。 本来は誤用だったのかも知れませんが、すっかり定着してしまっているように思います。 調べてみると、Simon Peyton Jones の The Implementation of Functional Programming Languages の p.224 には 「A combinator is a lambda expression which contains no occurences of a free variable [Barendregt, 1984]」 と書いてあります。ちょっと探した限りではバーレンドレヒト以前でこの意味で使っているのは見当たらなかったので、 この用法はやっぱりバーレンドレヒトが起源なのかも。それはそれでちょっと面白いなぁ。
579 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:51:46 ] またjargon fileの解釈論争みたいな塩梅だなあ
580 名前:flatline ◆r6EONKKhcc mailto:sage [2007/04/10(火) 02:04:09 ] >>554 こんなのもありますよ ttp://citeseer.csail.mit.edu/mcadams01practical.html Y in Practical Programs
581 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:12:26 ] おお、これは! でも、PSもPDFもみんな見れない…。 右上のView or download:から本文を見るんだよね?
582 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 03:17:32 ] (さっきコテハンを使ってしまったのは失敗だった) 最近CiteSeerのミラーがどこもまともに機能してないなぁ... こちらで っ[ ttp://citeseer.ist.psu.edu/mcadams01practical.html ] 主張を要約すると「再帰関数を(わざわざ)Yコンビネータを使って定義するようにすると - メモ化したくなった - エラーの際にデフォルト値を返したくなった - call treeを調べたくなった 等を含む色々な場合に拡張がすんなり行きますよ」というものです まぁ読んだからって人生変わるほどのすごい論文ではないですが,小ネタとして
583 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 07:33:46 ] コンビネータ論理チュートリアル e.tir.jp/wiliki?%CB%DD%CC%F5%3A%A5%B3%A5%F3%A5%D3%A5%CD%A1%BC%A5%BF%CF%C0%CD%FD%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB
584 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 07:50:12 ] >>580 氏が別の分野でもλ関連やってる事を今朝初めて知ったw
585 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:08:02 ] やっぱ、頭の悪い人間が関数型言語とかに手を出しちゃいけないんだなぁってのが この流れでよくわかった。 いちばんタチが悪いのは、単に無能なんじゃなくて「自分はわかっている」という 壮絶な勘違いにすぐ走ることだね。
586 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:18:42 ] で?
587 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:22:36 ] いちいち反応すんなよw
588 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:26:59 ] Barendregtが自由変数無しλ式指して 「あぁ〜コンビネータの話?」って俺様定義するのと、 ヘタレがミニ言語作るだけの行為を指して 「俺、コンビネータ作っちゃおうかなぁ〜」と意味不明発言するのでは 雲泥の差がある、ような気がしないでもない。
589 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:16:07 ] たぶんどっちもjargonだ 大して違わねぇよ というような気がする
590 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:19:09 ] >>570 そっちじゃなくて、XMLを操作する手続きというかフィルタを合成していく方。
591 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:26:30 ] 高階関数を使って再帰下降型パーサを構成する といった類の話ですね。
592 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:28:56 ] いや慎重に言い直しておこう。 最近あぶない人が出没しているようだから。 高階関数を使って構文解析木を処理していく といった類の処理なんじゃないですか?
593 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:18:15 ] ストリングリダクションについて調べたいんだけど取っ掛かりになりそうな本ってないだろうか。 スレ違いっぽくて悪いんだが他に訊けそうなスレがないんで頼む。
594 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:20:23 ] まだ項書換系とか学部レベルの勉強してるのか。
595 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 12:37:48 ] コンパイラ・スレの話題だな
596 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:49:44 ] 関数型言語の性質をC++やその他の言語に実装する場合って みんなどんな書籍参考にしてるのですか?
597 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:59:59 ] シュプリンガーの関数型言語作成本とか
598 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:04:29 ] >>597 なんて名前本ですか?
599 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:08:09 ] 自分で探せ あと、お前の実力では今読んでも力にならないと思う。
600 名前:597 mailto:sage [2007/04/29(日) 00:11:45 ] シュプリンガーじゃなくてプレンティスホールだったw