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/
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
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 ] 関数型っていうのはプログラミングの際に有用な概念であるけれど、計算機の構造上の有用性はあるの?
432 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:29:19 ] ttp://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Shiro 2005/09/30 の所 ttp://homepage3.nifty.com/mogami/diary/d0509.html#28t1 Lisp/Common Lisp は純粋関数型じゃないから置いておいても、 これからのメニーコア CPU には関数型言語がベストマッチだと いう考えが出て来てもおかしくはないかな。
433 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:50:14 ] そうかなあ。レイトレみたく完全に独立な計算をパラに展開するのは 容易だが、相互に通信したり状態を共有したりするようなのは 純粋関数型で書くのはなかなか難しいと思う。 例えば探索なんか一見パラにできそうでもキャッシュやルックアップテーブルが きちんと機能して枝刈りできないとつらいっしょ。 >>432 のリンク先に書いてあるようなミクロな並列性はスレッドをプールから ひっぱってきてアサインして完了を待つなんてことやるコストに引き合うか 疑問でしょ。たぶんプロファイルとった上で限られた部分にだけ適用しても 引き合うんじゃないの。行列計算とかならともかく、インタラクティブなもの はたいがい状態引き回しが必要だろうし。 >>432 みたいのはちょっと、裏付けなさすぎの与太話の域を出ないんじゃないかな。
434 名前:デフォルトの名無しさん [2005/10/06(木) 13:28:45 ] 関数型がくそに思えてきた今日この頃。
435 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 19:15:02 ] >>428 Tomasulo algorithmは見方によっては命令間で直接データを渡してるな。 見方によってはただのレジスタリネーミングだけど。
436 名前:428 [2005/10/06(木) 21:22:11 ] ほほぅ。思いつきで言ってみたが、いいセンスしてるな。俺。
437 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 18:58:16 ] 関数型マンセーな人の何割かが実践してプログラム組めば、 関数型が使えないなんてことにはならないかもしれんな と最近思った。
438 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 19:31:10 ] そういう面倒なだけで論文の書けないことは、下々の皆様にお任せします。
439 名前:デフォルトの名無しさん mailto:sage [2005/10/17(月) 23:27:54 ] 研究者でも何割かはまともな論文書いてないだろうし、 って言ったら怒る?
440 名前:デフォルトの名無しさん mailto:sage [2005/10/18(火) 00:04:29 ] Common Lispで実践的なプログラムを書いてみる入門書が無料で読めるね。 まだちょっとしか読んでないけどなかなかおもしろいよ。 www.gigamonkeys.com/book/
441 名前:デフォルトの名無しさん mailto:sage [2005/10/18(火) 00:20:32 ] 目次だけ見ましたが、>>440 Common Lispで(Common Lispっぽい)実践的な コードを書く話かと思います。関数型言語と関係があるように思えませんでした。 Common Lispを関数型言語とは普通呼ばないし、Lispの中でもCommn Lispは 関数型プログラミングはやりにくい部類ですよね。
442 名前:441 mailto:sage [2005/10/18(火) 00:33:53 ] うげ! 今改めて>>1 をみたら、Lispスレや、あろうことかEmacs Lispスレまで 関係あることになってるのな。そういうpositionのスレだとは知らんかった。 てなわけで、関数型に対してカタクナ過ぎる俺は無視して続けてくれい >>440
443 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 22:07:10 ] そこまで気にする必要ないよ。 多少の派閥があるだけだから。
444 名前:ハーピィ mailto:sage [2005/11/01(火) 22:23:52 ] E・∇・ヨノシ <444ゲット♫
445 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 00:08:28 ] >>442 つうか Lisp の中で特別 Common Lisp が関数型やりにくいってのは誤解だと思 われ。ただ単にマルチパラダイムなだけでやるやつはやる。そんとき特別 Scheme よりやり難いってわけでもない。型推論とかパターンマッチング構文も いくつか実装があったような
446 名前:デフォルトの名無しさん [2005/11/06(日) 02:43:18 ] Ocamlの質問ってここでしていいですか? ttp://www.kb.ecei.tohoku.ac.jp/~sumii/ocamlbook/book-ora.pdf の88pの練習問題 字句木をやっているんですが、stringの先頭から 順番に文字を受け取りたいときってどうすればいいんですか。 もちろんstr.[n]ってすればできるんですけど、 リストみたいにもっとスマートにできないんですかね。
447 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 03:08:39 ] >446 一応より特化したスレがあるが 関数型言語ML(SML, OCaml, etc.), Part 3 pc8.2ch.net/test/read.cgi/tech/1103606223/
448 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 03:48:10 ] >>446 残念ながら、そういう方法はない。ので、 1. str.[n]を駆使する 2. 自分で list_of_string を書いてリスト化してから処理する 3. Stream.of_string を使って Stream で処理する 4. そのほか のどれかをやるしかない。 この練習問題くらいなら 2 だろうなという気がする。
449 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 15:28:30 ] String.iter
450 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 16:19:08 ] 何この差wwwww sourceforge.net/softwaremap/trove_list.php?form_cat=160 C++ 16669 Java 16645 C 15876 PHP 12092 Perl 6187 . . . LISP 323
451 名前:デフォルトの名無しさん [2005/11/19(土) 18:22:43 ] Ruby 398( ´,_ゝ`)プッ Visual Basic .NET 289(*≧∇≦)ノ☆ ギャハハ プギャー
452 名前:デフォルトの名無しさん [2005/12/15(木) 08:10:46 ] 誰か STM(software transaction memory) とはどーいうものか 教えてくれぬか
453 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 09:53:20 ] >>452 マルチスレッドプログラミングで、スレッド間の(mutableな)共有変数を扱うとき、 コードの特定の部分が他のスレッドに割り込まれることなく(つまり、atomicに)実行されてほしいことがある。 STMの考え方は、その部分で起こった共有変数への読み書きを局所的なログに保存しておいて、 その部分が終了したときまとめてメモリに反映するというもの。 最後に不整合が見付かった場合、ログを捨てて最初からやり直す。 こういうとき普通はロックを使うんだけど、ロックにはいくつか問題がある。 例えば、共有変数を扱う二つの(副作用のある)関数A,Bがあったとして、 A,Bともに正しくロックを使っていたとしても、「Aを呼び、次にBを呼ぶ」ことをatomicに行う 関数を書くには、AとBの抽象化を破壊してどの変数をロックすべきかを調べないといけない。 STMはこの問題を解決する。 www.research.microsoft.com/%7Esimonpj/papers/stm/index.htm 俺はこれの前半を読んだだけだから、変なことを言ってたら突っ込んでくれ。
454 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 22:23:18 ] optimistic lockingでやるってことか。 最後にコミットするときはロックによるatomicityの保証がいる筈だが、 Cで書いたcommit APIの中に閉じ込めるのでHaskellからは見えないということ みたいだな。 >>453 の論文の範囲では、Haskellはuni-processorのみ、かつuser-level threadが safe pointでしか切り替わらないからCで書いた部分はアトミック と考えていいらしい。Rubyと同じってことだね。
455 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 10:24:50 ] 誰か関数型プログラミングどんなものか教えてくれ。 普通のウィンドゥプログラムとかかけるの?
456 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 10:28:19 ] >>455 書けるに決まってるだろハゲ。チューリング完全を何だと思ってやがる。
457 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 10:29:27 ] >>453 >ログを捨てて最初からやり直す。 うーん、まだpaper読んでないけど、これってどう実現するんだろう 整合性が確かめられるまで無制限にやり直すのだろうか
458 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 19:09:50 ] それよりコミット(反映)する際には結局ロックが必要そうな…
459 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 19:43:54 ] コミット中に、他のスレッドに割り込まれないように実装してるんだよ。
460 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 20:53:42 ] >>456 手続き型と何が違うんだ?3行でわかりやすく書け。このちんかす。
461 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 22:33:11 ] 字 が違 う
462 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 22:58:34 ] >>459 ユーザレベルスレッドでしか使えないのか
463 名前:デフォルトの名無しさん [2006/01/06(金) 21:07:13 ] 割りかし有名な 3D ポリゴンモデラーで Wings 3d つーのがあるんだけど、 ソース見たら Erlang で書かれてた。Erlang で書かれた本格的なアプリなんて 見た事無かったから少し驚いた。 www.wings3d.com/ 普通にサクサク動くし、Erlang ちょっと良いかも。 でも、日本じゃ何故か人気無いね。なんでだろう。
464 名前:デフォルトの名無しさん [2006/01/06(金) 21:31:47 ] 国が国策としてHaskellを支援するべき。 チャイナと戦うためにはそれしかない! 最近、大原麗子見ないけど、どうしてるんだろう?
465 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 21:54:13 ] いちおう聞くけどなぜ Haskell なの?
466 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 12:03:29 ] CやJavaは適度にプログラマの職を増やしてくれる。 雇用の創出こそが一番大事で、ものの良し悪しなど二の次なのですよ。 でも、結果として生産性において負けるようなことがあるなら、 それは雇用が減るということで、渋々新しいものが導入される。
467 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 20:30:41 ] 国策ならRubyだろ
468 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 22:11:12 ] >>467 ( ゚д゚) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ /
469 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 13:39:24 ] プログラマの地位向上を国策とすべきだ。
470 名前:デフォルトの名無しさん [2006/02/12(日) 15:45:35 ] 無能文系プログラマを締め出せばいい。 ハスケル標準 さらにスピード要求の機能はCやアセンブリ
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 ] 論理型言語の現状はどうなってるの?