[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 17:08 / Filesize : 172 KB / Number-of Response : 681
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型言語Part IV



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/



471 名前:デフォルトの名無しさん [2006/02/12(日) 18:43:42 ]
授業の課題で、
「MLやHaskellに代表される関数型プログラミング言語について調べ、
PascalやC言語に代表される手続き型言語との相違を説明するとともに、
関数型プログラミング言語が広く普及していない理由を議論しなさい。」

というのが出たのですが、さっぱりです。
頭のイイおまいら、教えてください!!

472 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 18:53:40 ]
つ【google】

473 名前:デフォルトの名無しさん [2006/02/12(日) 21:41:29 ]
>>471
とりあえずラムダ算法がベース。ここまでで広義の関数型言語(関数的、とも云える):Lisp方言やMLなど
参照透明性があるとか副作用がないとか(副作用はモナドや一意型などで解決している):HaskellやClean
普及してない理由はCやJavaやPerlがなんで普及しているかを考えればおk
詳細は ttp://www.shiro.dreamhost.com/scheme/trans/being-popular-j.html
俺の個人的見解では「ある言語しか知らないプログラマはその言語でしか物を考えられない(ほげ言語のパラドクス)」と
関係してると思う。ほげ言語のパラドクスについては ttp://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html

474 名前:デフォルトの名無しさん [2006/02/12(日) 21:43:00 ]
あー、参照透明性があるとか副作用がないとかそういう言語を特に「純粋な関数型言語」とか云うらしいぜ。
Wikipedia とかも見とけ。

475 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 21:57:04 ]
関数型言語の定義は厄介だな。
「関数プログラミングをencourageする言語」と言ったところか。
Basic, C, C++, Javascript, Lisp, ML, Haskell
のうち、適当なところから右が関数型言語ということになるかな。

「ラムダ計算を基礎とする言語」という定義は、Unlambdaという例外があるのでよくないと思う。

476 名前:デフォルトの名無しさん [2006/02/12(日) 22:04:48 ]
>>475
474ですが、Unlambdaでぐぐったら「Unlambdaは、obfuscated programming languages
(混乱させるプログラム言語、といったところでしょうか) の一種として開発された言語です。
しかしただそれだけではなく、純粋関数型言語というもう一つの特徴も持っています」
とあったのですが……。しかし生産性は高くなさそうですね。

#広義の関数型言語、のもっといい定義というか表現、誰かお願いします

477 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 23:45:47 ]
a href     "


478 名前:471 [2006/02/13(月) 00:53:18 ]
>みなさん
色々ありがとうございます。
今日色々考えてみて、実際問題として、数学的な考えをもてるプログラマが少ないことが一番
関数型プログラミング言語の普及を妨げてるのかな、と思ったんですが、どうでしょうか?

素人なんで、間違っていたらすみません。

479 名前:471 [2006/02/13(月) 01:33:29 ]
レポート記入途中なのですが、
「広義の関数型プログラミング言語とは〜であり、LispやSchemeがこれに含まれる。
より厳密な意味での関数型プログラミングとは〜であり、Haskellが挙げられる。」
という文章を書きたいのですが、〜にはどういう内容を書けば適当でしょうか?

因みに、厳密な定義の要件としては、「参照透過性」を満たすだけでよいのでしょうか?




480 名前:デフォルトの名無しさん [2006/02/13(月) 01:47:20 ]
>>479
広義の方はラムダ算法とか高階関数とかがごく普通に使われる言語、みたいな感じでいいと思うよ。
厳密の方はWikipedia によれば(ttp://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7)
どうもそうっぽい。宣言型言語とも呼ばれるみたいだね。

#レポートの成功とそう遠くない将来、関数プログラマとしてここに来てくれることを期待する:-)

481 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 01:47:40 ]
www.cs.nott.ac.uk/~gmh/faq.html#functional-languages


482 名前:473 [2006/02/13(月) 01:48:39 ]
URL は
ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7
だね。閉じ括弧までURLと見なされる@xyzzy+2ch-mode

483 名前:デフォルトの名無しさん [2006/02/15(水) 04:54:07 ]
Mirrandaってどんなの?

484 名前:デフォルトの名無しさん [2006/02/15(水) 04:58:49 ]
Oberon と Mirranda はあるのに Titania は無いのか。

485 名前:デフォルトの名無しさん [2006/02/15(水) 07:47:17 ]
数論的プログラミングってなんでないの?
くだらない言語ばっかり山のように作って、
それらの上にくだらない意味論を定義して。
ゴミを山盛りにするのが言語屋の仕事ですか?

486 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 09:41:43 ]
言いだしっぺの法則発動

487 名前:Why not FP ? mailto:sage [2006/03/24(金) 21:35:32 ]
関数型プログラミングがイマイチ流行らない原因について;
手続型に較べて高度な抽象化が要求されるけど、普通の人にはそれほど高度な抽象化ができないから。
高度な抽象化ができるのは極一部のプログラマだけで、マジョリティではないから。
…と思ったんだけど、どーよ?

488 名前:デフォルトの名無しさん mailto:sage [2006/03/24(金) 22:13:02 ]
わざわざ抽象化しなくても手続き型でごりごり書けちゃうし、そのほうが速い(書くのも実行するのも)
という意識があるからではないだろうか

489 名前:デフォルトの名無しさん mailto:sage [2006/03/24(金) 22:16:42 ]
>>487 単純に普通プログラマーが目にする言語が関数型じゃないものが多いということだと思われ。
つーか自分がそうなんだが・・・

関数型のプログラムの感じつかめるサイトないでしょうか・・・
長くてもかまいません。



490 名前:デフォルトの名無しさん mailto:sage [2006/03/24(金) 22:20:07 ]
>>487
それもあるかも知れないが、関数型言語を使えるのに
趣味でコーディングするときには使わない人が多いことを考えると
他にも大きな理由がある気がする。

491 名前:デフォルトの名無しさん mailto:sage [2006/03/24(金) 23:07:56 ]
趣味の関数型コードを公開しないだけでは?

492 名前:デフォルトの名無しさん mailto:sage [2006/03/25(土) 04:25:03 ]
XSLTって関数型言語にいれていいか?
あれなら、結構Webに転がってると思う

493 名前:デフォルトの名無しさん mailto:sage [2006/03/25(土) 23:07:55 ]
グラフィック(GUI)とか日本語処理とか
ライブラリが揃ってれば、、
(日本語ドキュメントつきで)

実験コードからちっとも先に進まない俺


494 名前:デフォルトの名無しさん [2006/04/10(月) 20:21:55 ]
>>493
それなら日本語ドキュメントは少なめだが(でも今年本が立て続けに出るらしい)Haskellがオススメ。

495 名前:デフォルトの名無しさん mailto:sage [2006/04/10(月) 20:36:41 ]
いまのGHCは多バイト文字の処理に関してはうんこなのでHaskellは勧められない。

496 名前:デフォルトの名無しさん mailto:sage [2006/04/10(月) 22:04:14 ]
GHCはたしかに多バイト文字は駄目すぎだが、Hugsだと大丈夫。

497 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 01:42:02 ]
関数型プログラムをC++で実現したいんだけど、遅延評価とかは無理だよね??
lambda をなんとなく実装してみたけど、遅延評価は実装できなかった・・・。


498 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 09:29:51 ]
>>497
無理ではない。

499 名前:デフォルトの名無しさん [2006/04/18(火) 14:40:09 ]
>>498
どうやるの?



500 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 15:57:49 ]
lamdaができれば遅延評価もできるんじゃね?

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

601 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:17:22 ]
>>600
お前さん書籍の名前知らないんじゃねーのw?
プレンティスホールなんてもうねーだろw

602 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:19:56 ]
>>600
プレンティスホールということは
  The implementation of functional programming languages, Simon Peyton Jones, Prentice Hall 1987
でっか?

603 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:22:47 ]
>>601-602
もともと一冊程度しかねぇんだから
いちいち煽んなよクズ

604 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:25:41 ]
>>601
600ではないが(この板はIDが出ないんだなorz)、たしかにピアソンになってるけど
プレンティス・ホールの名前も残ってるぽいし、過去の出版物だとその当時の名前で
引用するので、あながち>>600がまちがってるわけでもない。・・・と思う。

参考:
Pearson Education
ttp://www.pearsoned.com/index.htm
Pearson Prentice Hall
ttp://phcatalog.pearson.com/co_home.cfm?site_id=6

605 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:27:37 ]
>>596
citeseer.ist.psu.edu/332842.html
みたいな論文とかじゃね?

606 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:30:55 ]
>>597
www.etl.luc.edu/laufer/ftp/papers/functoids.ps.gz

607 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:40:47 ]
>>604
いちいちもったいぶった物言いして他人に不快感を撒き散らすなよクズ

608 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:49:52 ]
>>596
シュプリンガーのLNCSにありそうな希ガスが見ちゃいねえ。すまん。

609 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:52:11 ]
表紙が紅白の本だったっけ



610 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 00:58:52 ]
>>609
SPJ本は、そう。
International Series in Computer Science(pub:PH)に共通の装丁があの紅白だと思う。

611 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:03:39 ]
えーと結局どの本なのかいまだに見付けられないヘタレなのですが

612 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:12:28 ]
つかSPJ本の古い方って、PSファイルで公開されてなかったっけ?

613 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:15:17 ]
>>612
うーんと、
research.microsoft.com/%7Esimonpj/Papers/slpj-book-1987/index.htm
のことでしょうか?

614 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:18:57 ]
>>607
604ではないが、どの辺が「もったいぶってる」のかも、何を不快に思うのかもまったくわからん。
メンタルクリニックでも行ったほうがいいんじゃないか?

615 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:21:23 ]
>>614
604ですけど俺は無視したですよ。
あの手のは反応を楽しむから、放っておいたほうがいいと思うので。
スレ趣旨と関係ないから消えますね。

616 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:21:29 ]
>>613
ですね。

617 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:23:03 ]
そもそも回答に対して煽り口調で詰め寄る人間が居るから
荒れるのだと思う。
丁寧に質問し、煽らない。これが重要。

618 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:23:37 ]
>>616
さんくすこ。
この本は関数型言語の実装や動作の理解にはいいけど
もともとの質問(>>596さん)ような目的にはどうなんだろ。


619 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:24:13 ]
語尾にwを付ける人間の発言はスルーすべき。



620 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:26:48 ]
>>618
どうでしょうね。
最近それっぽい人間がboostの使い方やら
ドラゴンブックの読み方を質問しまくってる状況だから
目的に向いてるか向いてないか、当人も判断できないんじゃないかと
思っていますが。

621 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:32:24 ]
>>608
表紙が銀色とかのレクチャーノートシリーズね。・・・つかあの中から何を探せと言うんだ

622 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 10:21:04 ]
あれは元々心当たりやポインタのないような人間が探すものなのか……?

623 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 23:03:44 ]
F# ってまだ生きてるの?

624 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 00:27:37 ]
仮想化とは対象物を不完全ながらもその性質や姿を模倣し現出させることだ。
対して抽象化は、対象物のある特徴的な側面を抽出し概念化することだ。
仮想化で抽象化の技術が使われることはあるだろうが、その逆は考え難い。
コンピュータを使い、扇風機やコタツを抽象化することはできても、仮想化する
ことはできないのだ。少なくとも今の技術では無理だ。コンピュータがその姿形
を変えることはできないのだから。コンピュータが仮想化できるものは、コンピュー
タそのものが直接扱うものだけだ。例えば、仮想メモリ、仮想ネットワーク、仮想
マシン、仮想キーボードといったものだ。

抽象化した結果表現されるものは、設計者が想定した概念やイメージだ。しかし、
実在するものそのものではなく、人が考えたものであるために、このイメージは
非常に脆く、不安定だ。外部からの影響をもろに受け、形を変え易い。個々人が
持つイメージの些細な相違から認識のずれが生じ易い。扇風機の使い方は人に
よって異なることはないが、人がイメージしたものは、その生成から、破棄に至る
まで、非常に不安定な状態になり易い。それを防ぐには、イメージそのものをなる
べく強固なものにし、インターフェースに一貫性と整合性をもたせ、外因による影響
を受けに難くく、壊れ難くするための技術を見につけ、理解を深めておくしかない。

625 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:13:14 ]
ttp://www.cbook24.com/bm_detail.asp?sku=9784839923112
既出?

626 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:16:09 ]
今日M$の人にF#はどうしたのか2時間ぐらいしつこく聞いたら
話してくれなくなった...酷いよ

627 名前:デフォルトの名無しさん [2007/05/01(火) 23:45:48 ]
F#最近新バージョン出たばかりじゃないか。どこを見てるんだ

628 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:15:13 ]
>>626
あれ?今日なんかイベントあったっけ?
それとも仕事で趣味の話?

629 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 03:55:15 ]
>>626
F# 1.9が出て、Active Patterns(バナーナ構文)とか面白いものが出てきてるぞ。
少しは本家サイト見てみれ。



630 名前:デフォルトの名無しさん [2007/05/06(日) 11:48:08 ]
おい!気づいたんだが、Excelって関数型言語じゃね?

631 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:21:34 ]
>>630
"Spredsheet functional programming" の話?
ずいぶん前にも似たような話があった気がするけど

632 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:16:24 ]
Comegaが自然消滅したのを見ればF#が公式にVS一門に加わるまでは手なんか出せるはずが無い

633 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:30:08 ]
>>630
あれは関数型言語ではなく、エンドユーザコンピューティングだ。

634 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:35:07 ]
関数性とエンドユーザ性は直交しないの?

635 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:55:07 ]
関数の無い言語って見たことないんだが

636 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:13:40 ]
機械語やBrainfuckやPrologには関数がないんじゃない?

637 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:05:40 ]
結構いっぱいあるよ

638 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:09:43 ]
N88-BASIC とか

639 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:18:34 ]
Fortressって関数型言語?



640 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:51:20 ]
Prolog には関数あるよ。組み込みだけど。

641 名前:デフォルトの名無しさん [2007/06/28(木) 06:49:48 ]
まだあったのかこのスレ

642 名前:デフォルトの名無しさん [2007/07/01(日) 15:20:52 ]
関数型言語、あまりに動きがないな。
新しいことやってくれよ。

643 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 06:00:25 ]
広まる前に枯れたから難しいな

644 名前:デフォルトの名無しさん [2007/08/29(水) 18:43:31 ]
私は普段 Python を使っています。
関数型プログラミングにおける reduce が分かりません。
"広い意味において"どのように理解しておけばよいのでしょうか?

説明のためにちょっと定義:
 A(f,[0,1,2,3,4]) => f(0,f(1,f(2,f(3,4))))
 B(f,[0,1,2,3,4]) => f(4,f(3,f(2,f(1,0))))
 C(f,[0,1,2,3,4]) => f(f(f(f(0,1),2),3),4)
 D(f,[0,1,2,3,4]) => f(f(f(f(4,3),2),1),0)

(1). 正直 reduce だけではどれなのか分からない。(また fold も曖昧である)。
(2). fold は reduce と同義。
(3). 普通は (reduce_r == fold_r == A) , (reduce_l == fold_l == C) で通じている。
(4). f(x,y)==f'(y,x) なら A(f)==D(f') になるので、結局のところ A,D を区別しない。(同様にB,Cも区別しない)。
(5). A,D と B,C は実装の問題だと考えている。


645 名前:デフォルトの名無しさん [2007/10/03(水) 23:13:32 ]
foldとreduceは違うんじゃないの?
fold:リスト要素の型との戻り値の型はちがっても良い
reduce:同じ
じゃない?

646 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 08:47:15 ]
俺もほぼ同義でいいと思うが、あえて分ければそうかもしれんね。
別の表現をすれば、最初の項を別途与える=fold、リストからとる=reduce ?

647 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 16:20:56 ]
どうもありがとうございます。
ニュアンスに微妙な違いがあるんですね。


648 名前:デフォルトの名無しさん [2007/10/09(火) 23:01:13 ]
>>642
あたらしいことwww
ttp://www.blue.sky.or.jp/grass/

649 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:01:42 ]
スゲエ、笑けるw



650 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 02:07:38 ]
>>648
なんぞこれwwwww

651 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 14:19:10 ]
ドキュメントが英語なのが最大の笑い所な気がするw

652 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 15:48:39 ]
>>648
これはワラタ。
けど、手で書きにくすぎる上に機械生成が簡単過ぎるので、
変態言語としては微妙な気がする。

あと、公式の「はいはいわろすわろす」を逆アセしてみたら、
サイズを節約するためのトリックが使ってあって面白かった。
ttp://up.uppple.com/src/up7032.txt

653 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 01:50:17 ]
scalaってどうよ?

654 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:12:40 ]
Genericsの互換性がないのが痛すぎる>Scala
F#のほうがよさげ。

655 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 14:31:47 ]
JavaのGenericsと互換性がないってこと?
それはちょっとキツいかも。
思えば generic な HashMap も java.util のそれではなく scala.collection.mutable.HashMap だったり…

しかし今Scala触ってて Option型と for記法に感動したんだが。

val o2 = new HashMap[int,int]();
o2(1) = 2
for(i<-o2.get(1)) {println(i)}
for(j<-o2.get(2)) {println(j)}

まんまMaybeモナドやん! Scala最強

656 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 14:35:25 ]
書き忘れた。 Scala かじらないと何のことかわからんな。

o2(1) = 2
for(i<-o2.get(1)) {println(i)} // 2が出力される
for(j<-o2.get(2)) {println(j)} // 何も出力されない (エラーにならない)

for(i<-o2.get(1); j<-o2.get(2)) {...} // j の束縛に失敗するので何も出力されない (エラーにならない)

まじで Scala の範囲内なら NullPointerException 撲滅できそう。
既存のコード書き直すと Option型だらけになる場合もありそうだけど。

それだけに、 asInstanceOf の戻り型をなぜ Option 型にしなかったのか理解に苦しむ…



657 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 23:11:06 ]
Scala わかんないけど、それ単に key = 2 のリストを返してるだけちゃうん?

658 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 21:16:55 ]
ハッシュの戻り値が Option に包まれているのが良いんです。
Javaだと null かもしれない Integer 型を扱う必要があるけど、
Scala なら Option[int] みたいな感じで、 無効な値を含む場合を陽に切り分けることができるっす。

これだけだと、無効な値を含むかどうかをチェックしなきゃだめでめんどくさいんですが、
Haskell でいう Maybe モナドみたいな書き方がサポートされているので、if文が必要なくなり楽ができます。

しかも JVMで動く型付きの関数型言語。ちょっと良さげだと思うです。
>>654 みたいな欠点はあるけど。

659 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 13:06:09 ]
そのうちoption型は、どの言語も持つようになって、
それ前提にライブラリ構成されるようになるかもね。
C++もboost::optionってのがある。



660 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 07:18:16 ]
つまりfailure-oblivious computingってやつ?

661 名前:デフォルトの名無しさん [2008/03/16(日) 17:25:51 ]
組み込み用にクロス開発できる関数型言語処理系ってありますか?

具体的に言うと、ARMやMIPS-RのGCCでスタティックリンクできるものがあれば
紹介して頂けないでしょうか。

662 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 20:58:12 ]
optionalって.NETでいうとNullableみたいなもの?

663 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 03:39:13 ]
nullでもnilでもなく、Noneですがそうです。

関数型言語的に言うと、domianがliftingされてるわけです。


664 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 10:54:19 ]
どみあん

665 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 12:25:53 ]
何度も出た話題かもで恐縮だけど、関数型言語の位置付けってこれからどうなっていくの?
手続き型より巨大になっていくか、融合していくか、今のままなのか。

666 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 13:37:07 ]
未来のことなんてわかんねーyp

667 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 01:18:44 ]
関数型言語が本流になることはないでしょうが、
プログラムに参照の透明性があるのは手続き型言語でも好ましいことなので、
関数型言語で産み出された種々の機構が
手続き型言語に結び付けられるのではないでしょうか。

668 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 04:15:20 ]
50年間そうだったのだからそうだろう。

669 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 07:26:36 ]
実際そんな感じだよな。



670 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:39:27 ]
手続き型言語では簡単にできることが、
純粋関数型言語では困難なことがある。
その困難に立ち向かって獲得した手法は、
他の言語でも極めて有益なことがある。

不自由さの中で獲得した手法がきわめて豊穣である、
これは数学基礎論で起っていることと同じである。

671 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:51:01 ]
関数型言語はきっと本流になるよ
主流の言語は確実にこっちに向かってる
少なくとも、そう信じないとやってられない

672 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:52:43 ]
関数型言語は前と同じところに立っているのにな。

673 名前:デフォルトの名無しさん [2008/04/06(日) 10:16:39 ]
関数型って逐次処理は一切ないの?
それとも数学的に(ラムダ計算で?)合成可能な関数オブジェクトを持った
普通のプログラミング言語になるの?(つまりc#とか既に近い所にあるのか)

674 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:29:14 ]
言語に逐次処理が組み込まれているかどうかは別として、
逐次処理が「表現できない」言語は実用にならないから、
普通の関数型言語はどれも逐次処理を表現できるようになってる

どうやって表現するかは言語ごとに違って、組み込みで持ってるの(Scheme,ML)とか、
データに関数を適用して、その結果に関数を適用して…という構造で逐次処理を表すの(Clean)とか、
処理自体を第一級のデータとして扱うの(Haskell)とか

675 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:34:35 ]
関数型でも、Lispとかで逐次処理をだらだら書いてるソースを見かけると、
手続き型とあんま変わんなくね?と思うことがある。
一方で、非関数型でも、定義を並べる感じできれいに書かれてるものもある。
言語も重要だが、書き手の心構えのほうが影響でかい気がする。

676 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:41:26 ]
レスどうも。ポインタありがとう。
やっぱ書き方というか設計によるところもあるんですね。

677 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:42:02 ]
関数型言語はあくまで関数プログラミングを支援する言語だからな
Haskellで命令的に書くことも不可能じゃない

678 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 11:42:58 ]
>>674
基本的には関数の評価が強制されることを利用して順序をつけるので同じじゃないかな

679 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 12:02:37 ]
>>678
例えばSchemeの((lambda () a b c))でa b cが順に評価されるのを
「関数の評価が強制されることを利用」と表現するのは無理がないか?
Haskellの動作に至っては関数と全く(特定の処理系の内部実装の話を別にすれば)関係ない



680 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:32:03 ]
論理型言語の現状はどうなってるの?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<172KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef