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/
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で命令的に書くことも不可能じゃない