5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

関数型言語Part3

1 :デフォルトの名無しさん:02/11/17 19:03
前スレ

関数型言語Part2
http://pc3.2ch.net/test/read.cgi/tech/1007387924/


2 :デフォルトの名無しさん:02/11/17 19:06
関連スレ

関数型プログラミング言語ML
http://pc3.2ch.net/test/read.cgi/tech/1012445015/

関数型プログラミング言語Haskell
http://pc3.2ch.net/test/read.cgi/tech/1013846140/

LISP Scheme Part6
http://pc3.2ch.net/test/read.cgi/tech/1031560687/

Emacs Lisp
http://pc3.2ch.net/test/read.cgi/tech/1004551074/


3 :デフォルトの名無しさん:02/11/17 19:12
3ゲト?ズサ?

4 :デフォルトの名無しさん:02/11/17 19:14
     〃      ヽ     .|
     i   ノノノ))) ))    | 関数型言語が好きなんですか?
.    i i ( 'l_] l]〈リノ    .<
     ヽヽ >  />      \_____
     Y/ヽ!ェl〉        /ヽ/ヽ
      !! l卯 l         / // /
      i ll8| !       / // /
.       l l「| l       , ´-‐ ‐- ヽ
        /!_」l|_j、    {   l ,,  } ぅん
.      / /゙´l"ヽ >   ゝ. ‐  ノ
     'ーr‐ r r ´       l !
.       l  l. |           | |
.       |  ! |           l. |

       -―-
     〃      ヽ
     i   ノノノ))) ))   / ̄ ̄ ̄ ̄ ̄
.    i i ( 'l_] l]〈リノ < 再帰が再帰してそれが再帰関数で・・・・
     ヽヽ > n/>    \_____
     Y/ヽ!ェl〉        /ヽ/ヽ
      !! l卯 l         / // /
      i ll8| !       / // /
.       l l「| l       , ´-‐ ‐- ヽ
        /!_」l|_j、    {   l   U } ……
.      / /゙´l"ヽ >   ゝ. っ  ノ
     'ーr‐ r r ´     ⊂ニl !
.       l  l. |        | |
.       |  ! |        l. |


5 :デフォルトの名無しさん:02/11/17 21:20
FAQ for comp.lang.functional

http://www.cs.nott.ac.uk/~gmh//faq.html

6 :デフォルトの名無しさん:02/11/19 14:42
日本の学界でめぼしいものが見当たらないんですが・・・。

7 :デフォルトの名無しさん:02/11/22 20:27
http://www.deaiparks.com/i/index.cgi?id=inCwVX5oRQ

8 :デフォルトの名無しさん:02/11/23 01:04
>>7
sage

9 :デフォルトの名無しさん:02/11/29 17:07
過去ログだれかもってませんか?できれば.dat形式でキボンヌ

10 :デフォルトの名無しさん:02/11/29 17:11
>>9
Part2は985レスまでの持ってます。
かちゅーしゃのログ形式(dat)です。
UPローダお願いします。

11 :10:02/11/29 17:16
うぷしました
http://cgi.2chan.net/up/src/f8023.lzh

12 :デフォルトの名無しさん:02/11/29 17:17
navi2ch使えばdat落ちしたスレも普通に読めるよ

13 :デフォルトの名無しさん:02/11/29 17:40
>>10
Thanx!!!わざわざありがと。

>>12
emacsもってないけど、今度試してみる。


14 :デフォルトの名無しさん:02/12/07 20:35
>12
dat落ち直後のログは読めないでしょ?

15 :デフォルトの名無しさん:02/12/07 20:42
>>6
東大米澤研がんがれ!!

16 :デフォルトの名無しさん:02/12/07 21:36
つかよ、この前のプログラミングコンテストで優勝した以外ないだろ

17 :デフォルトの名無しさん:02/12/07 21:53
>>15
Kurimsもがんがれ!!

18 :デフォルトの名無しさん:02/12/08 02:01
JAISTの大堀研と東大の武市研もすごいぞ

19 :デフォルトの名無しさん:02/12/09 00:22
具体的に示してくらさい

20 :デフォルトの名無しさん:02/12/09 22:08
何をれすか?


21 :デフォルトの名無しさん:02/12/09 22:53
すごさを

22 :デフォルトの名無しさん:02/12/10 21:53
catamorphismの訳語って何?

23 :デフォルトの名無しさん:02/12/11 13:02
カタモーフィズム

24 :デフォルトの名無しさん:02/12/19 11:07
片想いズム!

25 :デフォルトの名無しさん:02/12/19 12:00
(´-`).。oO(サム。。。。)


26 :デフォルトの名無しさん:02/12/20 22:41
これから関数型言語を勉強したいと思うのですが、scheme, haskell, sml, ocaml,,, どれがいいですか?


27 :名無しさん@XEmacs:02/12/20 23:09
scheme

28 :デフォルトの名無しさん:02/12/21 00:26
漏れもschemeがいいと思ふ
SICP読みつつ一通りschemeを触り終わってからhaskellとか。

29 :名無しさん@xyzzy:02/12/21 07:23
Scheme使いお一人様ご案内〜。
はい、仕様書。
http://www.unixuser.org/~euske/doc/r5rs-ja/r5rs-ja.pdf
ほい、初心者用処理系。
http://www.drscheme.org/
じゃがんぱって。


30 :デフォルトの名無しさん:02/12/21 11:46
scheme 勉強して TeXmacs 日本語化しる!!


31 :デフォルトの名無しさん:02/12/25 14:06
、ウ、、ォ、鬢荀、ハ、 F# ウ!?
ttp://research.microsoft.com/projects/ilx/fsharp.htm

32 :デフォルトの名無しさん:02/12/25 14:54
>>31
リンク先はともかく、文字化けしてると思うぞ。

33 :デフォルトの名無しさん:02/12/25 15:42
ん?してないぞ

34 :デフォルトの名無しさん:02/12/25 15:51
、ウ、・ォ、鬢荀・ハ、・F# ウ・?

35 :デフォルトの名無しさん:02/12/25 23:41
sjisで書けっつーの。

36 :デフォルトの名無しさん:03/01/09 02:54
>>574
大丈夫だ。安心して書き込め。

37 :デフォルトの名無しさん:03/01/09 03:35
どこよ。

38 :デフォルトの名無しさん:03/01/09 04:18

実質的には上告はもう無理らしい。

うれしいなぁ。



39 :デフォルトの名無しさん:03/01/09 13:53
大阪って何?(´・ω・`)

40 :デフォルトの名無しさん:03/01/09 14:43
>>266
う〜ん、上手く伝えられてないかな?

世の中の大多数は君のような勇者でなく、ヘタレだと思うんだ
そのヘタレの持っている情報は今まで世の中に出ることはなかった、と
たとえ真実でもね

そのヘタレから情報を引き出し、共有することができたってのが
2chの功労だったと思うんだよね、おいちゃんは

これ以上はスレ汚しになりそうなので消えます


41 :デフォルトの名無しさん:03/01/09 17:38
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

42 :デフォルトの名無しさん:03/01/09 23:31
どっかの奴がほぼすべての板のほとんどのスレにこんなのばらまいてます↓
102 名前:IP記録実験 投稿日:03/01/08 20:13 ID:nJ34KBUL []
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

43 :デフォルトの名無しさん:03/01/10 08:31
何か既存の言論機関を味方に付ければ良かったのにと今更ながら思う、、、
大体批判と誹謗中傷の違いなんてその言った人間を保護する所が社会的にどれぐらいの
地位なのかによって変わってしまう、、、言論の自由なんて力が無ければ主張できないんだよ、、、

44 :デフォルトの名無しさん:03/01/10 09:51
test

一応一個だけ↑の事答えていただけたらTELします。
引っ張ってごめんなさい!

45 :デフォルトの名無しさん:03/01/10 10:32
いやぁ、いろんな人から電話かかってきておもしろかった。
んじゃおやすみなさい(3回目)

46 :デフォルトの名無しさん:03/01/10 11:03
【社会】動物病院裁判で2ch管理人の控訴棄却★4
http://news2.2ch.net/test/read.cgi/liveplus/1040833655/

裁判ネタ雑談は↑が該当スレです。

47 :デフォルトの名無しさん:03/01/10 11:47
http://qb.2ch.net/test/read.cgi/accuse/1041007818/21

48 :デフォルトの名無しさん:03/01/10 12:17
各板「のトップに「当インターネットはフィクションであり・・・・」ってのせとけばそれで良くない?

49 :デフォルトの名無しさん:03/01/10 13:08
訂正
×fusianasann
○fusianasan

50 :デフォルトの名無しさん:03/01/10 13:28
CGIのバグか?

51 :☆お金貸します☆:03/01/10 13:41
簡単キャッシング!!
保証人不要!!自由返済!!〜1口、3万〜免許又は、保険証が必要。ちょっと足りない……今すぐ必要……
そんな時は、コンビニ感覚で気軽にお電話下さい!!混雑が予想されるので、2回線用意しました。是非ご利用下さい。

090-6647-7242又は090-1299-3996にお電話ください。
※くれぐれも、イタズラ電話はおやめ下さい。又番号は通知してお掛け下さい。




52 :デフォルトの名無しさん:03/01/10 14:55
>◆/OQtXsetN
>文系・女性。下痢と便秘をくりかえしているらしい。
>大物コテ(腐れ30★)に粘着してる空気コテ。

と年中書かれております。「事実」でもいちいちその板の住人に説明するのが
面倒になったんですよ。否定はしないですよ。でも、面倒ですよ。
だから、文句があるんならメールくださいよ。(名無しの粘着さん)
としつこく書いている自分が情けない。

53 :デフォルトの名無しさん:03/01/10 16:23
うざったい荒らしが減るのなら。

54 :デフォルトの名無しさん:03/01/10 22:47
各板のTOPに一定期間、お知らせみたいに貼ってたら?
「2ちゃんねるではすべての書き込みのIPを記録します」って
メルマガとってない、運営板も見ないってユーザーのほうが多くない?

55 :デフォルトの名無しさん:03/01/10 22:54
解除されたりしないのかな?

56 :デフォルトの名無しさん:03/01/11 00:11
2chには自由を身勝手と履き違えている人が多すぎる
それにどうしても匿名で告発したかったらインターネットカフェや
漫画喫茶などで書き込むことはできるはず
電気のインターネットコーナーでもいいしね
荒らしや誹謗中傷してる奴は暇を持て余してる身勝手な奴がほとんど
こいつらのためにわざわざ匿名にする必要はまったくもってなし

57 :デフォルトの名無しさん:03/01/11 00:20
子供だからわかりませんってほんとに言ったの?>にかいどー氏に

58 :デフォルトの名無しさん:03/01/11 09:42
漏れも生っす。
大統領になりたいなら投票します。
おながいします。。。

59 :デフォルトの名無しさん:03/01/11 09:44
IPを記録されたくなので2ちゃんに書き込むのはやめた。

60 :デフォルトの名無しさん:03/01/11 10:16
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

61 :デフォルトの名無しさん:03/01/11 11:09
よーし、これからは匿名性の保てるインターネット喫茶がはやるぞ(爆

62 :デフォルトの名無しさん:03/01/11 13:15
「○○酒造が営利のために食品管理の工程で
 ワインに毒性の高い物質を入れている。」
と書き込んで、後日さらに細かく不凍液を入れている
細かいバッチ工程を誰かに書かれそうになって
慌てて企業側が暴力団に金を渡して
ひろゆこ氏へIPとリモホを出せと脅す。。。。。

山奥に連れ出され遺体を埋める穴の横で
暴力団に尋問された場合、
ひろゆこ氏は出すのかな?

63 :デフォルトの名無しさん:03/01/11 16:01
 IP記録告知以後、2chのどの板も、どのスレも、だいぶ静かになった
ような気がする。

 今まで如何に無責任な書き込みが多かったかを示しているような
気もするけど、閑散として活気もなくなったような気もする。

64 :デフォルトの名無しさん:03/01/11 16:05

キン肉マンに出てくるウールマン?

65 :デフォルトの名無しさん:03/01/12 00:08
殺人予告スレ発生。

【予告】小学生の登校を狙って・・・
http://live2.2ch.net/test/read.cgi/news/1042035002/

悪戯であることを祈る。

66 :デフォルトの名無しさん:03/01/12 00:18
お前のは議論じゃないよw
「これ言っていいですか?」 「これ言うとヤバイですか?」 って他人に聞いてるだけw

寝るのがイヤなら、教えて厨は初心者板に逝ってねw

67 :デフォルトの名無しさん:03/01/12 03:00
おそらくいままでの荒らし全部同一人物だろ

68 :デフォルトの名無しさん:03/01/12 21:08
岡田克彦ファンクラブからのご案内です。岡田克彦氏の卒業した早稲田大学
政治経済学部に比べて著しい低学歴、特に、ひろゆきの卒業した中央大学文学部
のようなヘボい大学に共通しているのは、文化水準が低いという事です。18歳から22歳を
ヘボい大学で過ごすということは、致命傷と言えます。2ちゃんねらーの大半は
岡田克彦氏に比べて、著しい低学歴ですから、取り返しはつかないのです。
せめて、http://www.geocities.co.jp/MusicHall-Horn/1091/で、氏の作品に触れましょう。


69 :デフォルトの名無しさん:03/01/12 21:10
Internet Service Providerが契約者に対し
顧客情報の開示を行うことを明らかにするだけだ。
責任は書き込んだ奴が取るだけ。

70 :デフォルトの名無しさん:03/01/12 21:23
最近カール★さん見ない・・・

71 :山崎渉:03/01/13 18:52
(^^)

72 :山崎渉:03/01/15 18:06
(^^)

73 :デフォルトの名無しさん:03/01/17 10:15
副作用のない純関数型って配列の更新するたびにコピーするの?
なんか仕組みがあるんか?


74 :デフォルトの名無しさん:03/01/21 08:58
遅延評価的には,コピーが起こるのは参照された時では?

75 :山崎渉:03/01/23 21:51
(^^)

76 :デフォルトの名無しさん:03/01/25 15:55
その配列がもう評価されることがないと判っていれば、書き換えてしまってもいいのでは?

77 :デフォルトの名無しさん:03/01/26 09:51
hozen age

78 :デフォルトの名無しさん:03/02/01 22:48
勉強しようと思ってClean 2.0.3入れてみたけど、"Unable to run compiler: 〜"とか言われてコンパイルできん。
1.3.3ではExampleは動いているのに
Enviromentのコンパイラのpathはあってるんだけど。
なんか設定変えるところとかあるんでしょうか?


79 :デフォルトの名無しさん:03/02/02 09:25
>>78
Haskellに汁!って言われるだけかも

80 :デフォルトの名無しさん:03/02/02 12:53
2.0.3はまだリリースしてましぇん

81 :デフォルトの名無しさん:03/02/02 15:00
CleanってサンプルにDirectX使ったゲームあるよな
すーぱーまりおみたいなやつ。ちょっと感動した。

82 :78:03/02/02 22:55
ううっ 2.0.2だった
しばらく1.3.3で遊んでみます


83 :デフォルトの名無しさん:03/02/18 19:55
最初スレは9ヶ月,part2スレは11ヶ月で次スレ立ったのに,
このpart3スレは3ヶ月で80そこそこか...
関数型言語の時代も,そろそろ終わりって事かな?


84 :デフォルトの名無しさん:03/02/18 21:37
>>83
2chの厨房にとってだけって話じゃないの?

85 :デフォルトの名無しさん:03/02/18 21:53
Ruby>>>>>>>>>>>>>>>>関数型言語

86 :デフォルトの名無しさん:03/02/19 01:34
CからC#への移行なら生産性あがって当然よ。
関数型言語からオブジェクト指向言語に移行するわけだから。

C++からC#への移行はどうかな。生産性は対して変わらんよ。

87 :デフォルトの名無しさん:03/02/19 02:01
>>86
C++を使えないのに無理やり使っていたせいで発生していたバグから
解放されるかモナー。

88 :デフォルトの名無しさん:03/02/19 06:37
何故に「C=関数型言語」という話になったんだろう・・・

89 :デフォルトの名無しさん:03/02/19 07:17
さらしあげ。 >>86

90 :デフォルトの名無しさん:03/02/19 07:41
>>86
C=関数型言語というのはネタなのか?

91 :がいしゅつ:03/02/19 07:50
Cって関数型言語なの?
http://pc2.2ch.net/test/read.cgi/tech/1044035494/


92 :デフォルトの名無しさん:03/02/19 10:58
平林雅英タンが,関数型言語についてナンも知らんのに
『 ANSI C/C++辞典』に「関数型言語」
なんて立項して大ボケ書いてたりしてるのがデマの
泉源のひとつ.

いわゆる「純粋な」関数と,
C とかの「術語としての『関数』」の,
区別がわかってないっぽい.

93 :デフォルトの名無しさん:03/02/19 14:49
平林タンを起点としてドミノ状に間違えているのでつか?

94 :デフォルトの名無しさん:03/02/19 17:18
そろそろCマガジンみたいなのでMLなりHaskellなりの
連載を始めたほうがよいと思います。日本のC屋には
プロはいても、あまりにも理論に疎いのが多いと思います。
日下部とか日下部とか日下部とか日下部とか日下部とか日下部とか

95 :デフォルトの名無しさん:03/02/19 19:36
新ANSI C言語辞典 平林雅英著 技術評論社

関数型言語(functional language)

関数型のプログラミング言語。
LISP, LOGO, APL, BCPL, B, Cなどがある。

96 :デフォルトの名無しさん:03/02/20 06:59


97 :デフォルトの名無しさん:03/02/20 10:36
このヒト、再帰できれば関数型って思ってんですかね?
かく言う私も廿年位前迄はそう思ってたんですが…。
参考 >>4

98 :デフォルトの名無しさん:03/02/20 21:35
この26〜7年で、関数言語の定義も随分洗練されたよね

99 :デフォルトの名無しさん:03/02/22 13:24
>>97
違う。
この人的には手続き呼び出しが関数のような形を
している言語は関数型言語と呼ぶらしい。
そしてPascal は function と procedure を使い分け
られるから関数型には入らないらしい。

関数型言語という言葉をどこかで見かけて、
その意味を勝手に想像して本に書いちゃった
・・・って感じ?


100 :100 get:03/02/22 19:59
3ヶ月と5日かかったのか

101 :デフォルトの名無しさん:03/02/22 20:18
>そしてPascal は function と procedure を使い分け
>られるから関数型には入らないらしい。
Pascalはハイブリッド型関数型言語です。
C++が純粋なOOPLであるSmalltalkとの対比でハイブリッド型OOPLと呼ばれるのと同様です。

102 :デフォルトの名無しさん:03/02/22 23:40
あんまり笑わさないでください

103 :デフォルトの名無しさん:03/02/23 11:25
elisp を haskell や ocaml に置き換えるとすると、
text property はどうやって実現するのだろう。
text property はあらゆる型のオブジェクトを保持できるリストです。


104 :デフォルトの名無しさん:03/02/23 16:38
>>99
>LISP, LOGO, APL, BCPL, B, C

というラインナップを鑑みるに,

LISP -- 一応判ってるのか?
LOGO -- なんでココで LOGO なのか,ぜんぜんワカラン
APL -- FP の先祖だから挙げた?
BCPL -- CPL から関数型的な部分を取ったのが BCPL と思うが...
    単に C の先祖の B の先祖だから載せたんだろう.たぶん.
B, C -- 略

105 :デフォルトの名無しさん:03/02/23 20:35
>>103
そもそもlispのリストはあらゆる型のオブジェクトを保持できるんだから
問題はそこだけではないはず

106 :一応:03/02/23 23:53
>>104
Lispは、「古典的な意味」の関数型言語でしかないよね

107 :デフォルトの名無しさん:03/02/24 00:15
何を言っとるんだチミは

108 :デフォルトの名無しさん:03/02/24 00:16
久々の燃料投入ですか?

109 :一応:03/02/24 01:56
例えばLispには、prog とか goto といった手続き的プログラミングの要素がなだれ込んじゃってるから、
純粋な関数型言語とは言いにくいよね。


110 :つうか:03/02/24 01:59
副作用つかいまくりぃーのLispのどこが関数型言語じゃぁーーーー?!

111 :デフォルトの名無しさん:03/02/24 02:01
>>109
それはそうなんだが、そのことと>>106
はどう繋がってるんだ?

112 :デフォルトの名無しさん:03/02/24 02:06
数学のおベンキョしてる方?
「古典的」って別に大した意味はなくて、
バッカスのFPとか出てくる前は、Lispみたいなのが「関数型言語」の代表格だと思われてた時代もあったね、
つう程度の意味。わかった?


113 :デフォルトの名無しさん:03/02/24 02:13
(´・ω・`) . 。 o O (だんだんヴァカスレになってきているヨカーン・・・)

114 :デフォルトの名無しさん:03/02/24 02:23
>>112
デムパさんですか?

115 :デフォルトの名無しさん:03/02/24 02:24
そして糞質問投げた>>111 は戻ってこない、と。

116 :デフォルトの名無しさん:03/02/24 02:25
(´・ω・`) . 。 o O (日曜深夜に2ちゃんでのたくってるヒッキーにデムパ扱いされるとは・・・)

117 :デフォルトの名無しさん:03/02/24 02:34
前スレの面影がまったくなくなったな。

118 :デフォルトの名無しさん:03/02/24 02:38
そうしますと、Lispは関数型言語の仲間にいれておくべきなのでしょうか?
CLtL2とか見た範囲では、なんでもできる実用言語で、
そのコアの部分にラムダ計算の仕組みがある、って程度にしか認識していないのですが。

119 :デフォルトの名無しさん:03/02/24 02:41
>>117 前スレも、そのまた前スレも、そんなに大したもんではない、
と思う

120 :デフォルトの名無しさん:03/02/24 03:05
>>118
別に厳密な定義があるわけじゃないから,どっちでも
いい.修辞的には「最も関数型らしくない関数型言語」
とか言われたりする.

CLtL2 は,なんでもできる実用言語にするべく膨ら
ませた,っていう面があるから,もっと古い Lisp の
雰囲気がわかる文献... って無いな.竹内先生の
「はじめての人のための Lisp 」ってまだ売ってるのかな.

Lisp のラムダには,確かに,便宜的に導入された,って
雰囲気が多分にある.Scheme はそのあたり,部分適用とかを
だいぶすっきりさせてる.

121 :デフォルトの名無しさん:03/02/24 08:22
ここではλ計算はなかったことになってるのか?

122 :120 != 112:03/02/24 09:58
>>121
理論のほうから見れば確かに最初ッから Lisp は
ハイブリッド的だった,ということ?

そりゃそうなんだけど...

『メジャーなプログラミング言語で関数型言語なのが
Lisp しか無かったから,Lisp が代表みたいに思われて
しまってたよね』って感じか?

オブジェクト指向と C++ みたいなもんかニャ

123 :デフォルトの名無しさん:03/02/24 14:45
G.Hutton的には、Lispは関数型じゃないよ。

124 :デフォルトの名無しさん:03/02/24 15:59
LISPは元々関数型言語だよ。
純粋じゃないだけで。

>>120
>いい.修辞的には「最も関数型らしくない関数型言語」
>とか言われたりする.
誰が言ったんだよ。

125 :デフォルトの名無しさん:03/02/24 21:07
関数がファーストクラスな言語なら関数型言語でいいんでしょ?
関数を安全に変数に代入(束縛?)出来れば。

Cでも無理やり関数をポインタに突っ込めば出来なくないでもないけど
決して安全じゃないよねー。

126 :デフォルトの名無しさん:03/02/24 21:18
安全とは?

127 :>>125:03/02/24 21:31
その定義はちょっと・・・。
Pythonとかは関数がfirst classだけど関数型言語じゃないよ。

128 :125:03/02/24 21:56
>>126
暴走しないという程度

>>127
まあ大雑把に言えばということです。

関数がファーストクラスなことと言語の作者がこの言語は関数型ですと
主張すれば関数型言語と言っても良いのでは?と思っているからです。
はい。

129 :デフォルトの名無しさん:03/02/24 21:57
式一つに統一されてるというのは重要な要素だべ

130 :デフォルトの名無しさん:03/02/24 22:26
なんで重要かといわれれば答えられないが。
まぁ、気分の問題だ。

131 :デフォルトの名無しさん:03/02/24 22:38
副作用がないのが関数型だと思ってたけど違うの?

132 :デフォルトの名無しさん:03/02/24 22:44
>125
関数がファーストクラスってのはあんまり本質とは関係ないぞ。
関数型言語とは、基本的に手続き的な処理フロー(C言語でいう、
複文に当たる物)が無く、数学的な式と同じ様に記述できる事を
目的とした言語。
で、実用上それだけじゃ限定された使い方しかできないので、
手続き型と同じく副作用も起こせる様に拡張されているのが現状。
数学的な意味を保ったまま間接的に副作用を起こせる言語も
ある。(HaskellやConcurrent Cleanとか。)

LISPは現在でもリスト処理においては本来の関数型言語として
記述できるけど、CommonLispまでの一連の拡張で汎用型言語という
意味合いが強くなっている。

133 :デフォルトの名無しさん:03/02/24 22:53
http://sky.zero.ad.jp/~zaa54437/programming/concepts/index3.htm#f2

134 :125:03/02/25 00:44
>>131
激しくガイシュツなのでしょうが。一様つっこんどきます。
ML(sml,ocml) Lisp Sheameは関数型言語なのでは?

>>132
>関数がファーストクラスってのはあんまり本質とは関係ないぞ。
私も、そう思いますがこれぐらいしか分類する基準が見つからなかったからです。
正しい定義は、「教えて偉い人」って言う感じです。

>数学的な意味を保ったまま間接的に副作用を起こせる言語も
>ある。(HaskellやConcurrent Cleanとか。)
数学的な意味というが何をさしているか知りませんが
参照透明性というのであればHaskellはそうじゃありませんよね。>>132
IO型から中身を取り出すとき参照透明性がなくなっちゃうから。
これがHaskellの中で唯一嫌いな点です。

Cleanは一意性と名前空間をうまく使って実現できているので
すばらしい言語と思ってます。
でもVer2になって仕様がさらに複雑になったねー。
あそこまで拡張する必要あるのだろうか?
だれかClean使っている偉い人教えてー。

135 :デフォルトの名無しさん:03/02/25 07:16
>>101
>Pascalはハイブリッド型関数型言語です。

関数型言語の定義を説明してみて!

136 :デフォルトの名無しさん:03/02/25 08:55
>>135
関数型言語の定義を説明してみて!

137 :デフォルトの名無しさん:03/02/25 08:56
>134
IOみたいな帰納的に生成できない対象に対して参照透明性を与えることはできるの?

138 :デフォルトの名無しさん:03/02/25 09:02
>>137
「帰納的に生成できない」とはどういう意味ですか?

139 :デフォルトの名無しさん:03/02/25 11:04
>138
代数的ではないこと。
数やリストのような代数的対象は生成したときに振舞いが一意に
決定される(代数的対象に関する各演算の結果が満たす等式は帰納法で
証明される)。つまり始対象(自然数なら0、リストなら[])からの
一意な同型写像が存在する。IOではそのような始対象が存在しない。

140 :デフォルトの名無しさん:03/02/25 11:20
>>139
でもそんな限定する必要ないと思うんだけど。

141 :デフォルトの名無しさん:03/02/25 11:29
>140
じゃあ、参照透明性はどうやって定義するの?

142 :デフォルトの名無しさん:03/02/25 11:38
別に透明でなくてもいい・・・かも。

143 :デフォルトの名無しさん:03/02/25 12:06
偉い人というか、多少でもわかってそうな奴っていないっぽいな。
125はただの知ったか厨みたいだし。

144 :デフォルトの名無しさん:03/02/25 12:22
関数型言語って何ですか?

145 :デフォルトの名無しさん:03/02/25 12:27
このスレってさ144の質問に答えるためにスレの大半を使ってないか?

146 :デフォルトの名無しさん:03/02/25 12:40
ttp://www.cs.nott.ac.uk/~gmh/faq.html#functional-languages
に不満な点があるんだったらスレを消費しても構わんと思う

147 :デフォルトの名無しさん:03/02/25 14:07
やっぱLispは関数型じゃないだろ?
funcallとか特別なのがあるしな。
これも要件の1つだろ。

148 :デフォルトの名無しさん:03/02/25 16:22
schemeにはそんなのないよ。


149 :デフォルトの名無しさん:03/02/25 17:57
>147
別に関係ないとおもうけど。

150 :125:03/02/25 20:22
>>143
>偉い人というか、多少でもわかってそうな奴っていないっぽいな。
>125はただの知ったか厨みたいだし。
そのとおりです。
143さん、関数型言語って何ですか?
出来れば具体的な言語を挙げて説明してくれると嬉しいです。

151 :not 143:03/02/25 21:56
↓の頁の最初のあたりが参考になるかも
http://www-6.ibm.com/jp/developerworks/linux/010615/j_l-prog.html

152 :デフォルトの名無しさん:03/02/25 22:28
>>150
一問一答で簡単に答えの得られる質問じゃないと思われ。。
全体像を理解するのに少なくとも本一冊はかかるような。

類似の質問に
・構造化プログラミングってなに?
・オブジェクト指向プログラミングってなに?

などがあります


153 :デフォルトの名無しさん:03/02/25 23:06
>>152
一行に要約して下さい。

154 :デフォルトの名無しさん:03/02/25 23:26
>>149
Lispでは関数が擬似ファーストクラスだということなんだが。
ファーストクラスが関係ないとなると、
関数型言語の輪郭は益々ぼやける。

155 :デフォルトの名無しさん:03/02/25 23:34
関係ないってことはない。
必要条件だけど充分条件じゃないってこと。

156 :デフォルトの名無しさん:03/02/26 00:16
>>155
関数がファーストクラスでないと関数型言語とはいえないということになりますか?

157 :デフォルトの名無しさん:03/02/26 00:19
「関数プログラミング」バード&ワドラー著 武市正人 訳 近代科学社
引用開始
関数プログラミングとはプログラミングを数学的な活動として
とらえる考え方であり、本書ではそれを特定のプログラミング言語
にはよらず数学の表記法を用いて紹介する。
引用終わり


158 :デフォルトの名無しさん:03/02/26 00:23
>>157
関数型言語の定義はどうなってますか?

159 :デフォルトの名無しさん:03/02/26 00:45
>>157
上記の本では特に定義されていません。
Miranda、MLなどが関数型言語と考えられているようです。
bit 1999 3月号 で武市先生による関数プログラミングの解説が
あります。私見ですが、数学的活動ととらえる関数プログラミングを
支援する機能をもつものが関数型言語ではないでしょうか。

160 :デフォルトの名無しさん:03/02/26 01:27
"式"を記述した関数を組み合わせて"計算"を行うのが関数型プログラミングであり、
それを支援するのが関数型言語だと認識してる。
命令型言語でも注意すれば関数型っぽいことできるけど、Rubyを関数型言語とは言わないしね。

あなたが関数型言語だと思うものが関数型言語です。
ただし他人の同意を得られるとは限りません。

161 :デフォルトの名無しさん:03/02/26 03:57
関数型言語のメリットって何?

162 :デフォルトの名無しさん:03/02/26 04:36
>>161
何だと思う?

163 :デフォルトの名無しさん:03/02/26 06:05
数学での式って何か考えてみたけど、要は等式に代表される関係式でしょう。
だからむしろPROLOGみたいな宣言型とかOPALのような代数型の方が数学っぽい。

164 :デフォルトの名無しさん:03/02/26 06:08
で?

165 :デフォルトの名無しさん:03/02/26 06:35
163 みたいなのしかいないのか?

166 :デフォルトの名無しさん:03/02/26 10:17
言語ごとの機能によるけど
引数と返り値に関係づけをつくることができて
それが数学ぽかったり、見たまんまだとよりいい。

で、入出力にはそんな関係づけはないと。

167 :デフォルトの名無しさん:03/02/26 13:11
>>164-165 このスレ、こういうやつがたびたび湧いてくるけど
なんなんだ?おれの予想はRuby厨、Java厨、boost厨のどれかだと
読んでるけどあたりですか?

168 :デフォルトの名無しさん:03/02/26 15:40
数学っぽさが関数型言語の指標かどうかは分からない。
計算の単位が全て関数であることが重要なんであって、
数学らしさとは必ずしも一致してないような。

169 :デフォルトの名無しさん:03/02/26 16:10
プログラムのソースコードをそのまま明細書にはっつけて
アルゴリズムの申請がみとめられるような言語、はまだですか?

170 :デフォルトの名無しさん:03/02/26 19:08
余代数的な対象も代数的に書かなければならないところが気持ち悪い。

171 :デフォルトの名無しさん:03/02/26 20:18
【何処も】情報科学総合スッドレ【板違い】
http://science.2ch.net/test/read.cgi/rikei/1046173479/

172 :デフォルトの名無しさん:03/02/26 20:22
結局、誰も関数型言語の定義を知らないと。



173 :デフォルトの名無しさん:03/02/26 20:38
>>172
ホントに知りたいならcomp.lang.functionalでも見てた方がよいかと

174 :デフォルトの名無しさん:03/02/26 20:47
要するにデータも命令も関数になってるのが関数型言語じゃないの?
ラムダ計算とかさあ

175 :デフォルトの名無しさん:03/02/26 20:56
ソフトウェア考現学 萩谷昌己 著 CQ出版
p152より引用
引用開始
関数的プログラミング(というプログラミング.スタイル)を
具現化したプログラミング言語を、関数型言語という。
引用終わり



176 :デフォルトの名無しさん:03/02/26 22:39
プログラミング言語 武市正人 著 岩波講座 ソフトウェア科学
p8より引用
引用開始
プログラムによる計算過程は、通常の計算機のハードウェアの仕組みと
独立して考えることもできる。関数型言語(functional language)、
あるいは作用型言語(applicative language)とよばれるものは、
数学における関数(function)の適用(application)によって
アルゴリズムを表現しようとするものである。
引用終わり


177 :デフォルトの名無しさん:03/02/26 22:42
なんせ、関数型言語は使いこなすだけでそうとう高度な
スキルを要するし、それにかかるお金も大きいほうなのだから。

178 :デフォルトの名無しさん:03/02/26 23:04
>>177
「使いこなす」というのがどの程度なのかわからないけれども。
プログラミングを楽しむ程度なら高校数学の知識と推論能力
があれば十分だと思うよ。

179 :デフォルトの名無しさん:03/02/26 23:14
関数型言語って、教育用言語として定着しつつあるよね

180 :デフォルトの名無しさん:03/02/27 13:01
やっぱJavaとかBasicじゃないの?
教育用といえば

181 :デフォルトの名無しさん:03/02/27 19:13
>>180
現実はそうかもね。高校はBasicかぁ。
Schemeの方が絶対に良いと思う。

182 :デフォルトの名無しさん:03/02/27 19:59
でも学校出た後のことを考えるとjavaの方が就職率高いと思う。
教育のためなのか?就職のためなのか?
ということなんでしょうね。

183 :デフォルトの名無しさん:03/02/27 20:30
http://www.shiro.dreamhost.com/scheme/trans/icad-j.html
を見て思ったのですが「Lispのユニークさ」の2番、3番、5番、6番
の条件が満たされていれば、関数型言語?

184 :179:03/02/27 21:38
>>180-182
>>179 関数型言語って、教育用言語として定着しつつあるよね
大学の情報系限定のお話だけど。


185 :デフォルトの名無しさん:03/02/27 21:39
http://www.shiro.dreamhost.com/scheme/trans/icad-j.html
Lispのユニークさ

1, 条件式。
2. 関数型。
 Lispでは関数は整数や文字列と同じようなデータ型のひとつだ。
 リテラル表記を持ち、変数に代入できて、引数として渡せる、というようなことだ。
3. 再帰。
4. 動的型付け。
 Lispでは全ての変数は実質的にポインタだ。変数ではなく値の方に型が付いており、
 代入や束縛は実質的にポインタのコピーで行われ、ポインタが指されるものには作用しない。
5. ガベージコレクション。
6. 式でプログラムが構成されること。
 Lispプログラムは式の木であり、それぞれの式が値を返す。
 これはFortranとそれを引き継ぐ多くの言語とは対照的だ。それらの言語は式と文を区別している。
7. シンボル型。
 シンボルは実質的にはハッシュテーブルに格納された文字列へのポインタである。
 これによって、文字をひとつひとつ比較しないでもポインタの比較だけで済む。
8.シンボルと定数の木によってコードを表現すること。
9. 言語の全てが常に在ること。
 読み込み時、コンパイル時、実行時が明確に分離したステップになっていない。
 読み込み時にコンパイルしてコードを走らせることもできるし、
 コンパイル時にコードを読んだり走らせたりすることもできるし、
 実行時にコードを読んだりコンパイルしたりすることができる。

186 :デフォルトの名無しさん:03/02/27 21:48
漏れ的には、>>151 に載ってる特徴が、関数型言語を良く表していると思った。

http://www-6.ibm.com/jp/developerworks/linux/010615/j_l-prog.html
個人的には、大まかに言って、関数プログラミングとは、
以下の特性のうちの少なくともいくつかを備えたものであると考えています。
関数言語と呼ばれる言語は、以下のことを行いやすくし、 その他のことを困難または不可能にします。

1. 関数が最初のクラス (オブジェクト) である。
 つまり、「データ」について行えることはすべて、
 関数自体についても (関数を別の関数に渡すなどの方法で) 行うことができます。
2. 主要な制御構造として再帰が使用される。
 言語によっては、それ以外の「ループ」構成は存在しないことがあります。
3. リスト処理に主眼が置かれている (たとえば、Lisp という名前にもこれが表れています)。
 多くの場合、ループに代えて、リストがサブリストの再帰とともに使用されます。
4. 「純粋な」関数言語は副次作用を避ける。
 これにより、最初にある値を変数に割り当て、
 次に同じ変数に別の値を割り当ててプログラム状態を追跡するという、
 命令型言語に付き物と思われるパターンが除外されます。
5. FPはステートメント の使用を思いとどまらせるか、あるいは完全に拒絶し、
 代わりに式 (つまり、関数に引数を加えたもの) の評価を行います。
 純粋な場合、1つのプログラムは1つの式 (およびそれをサポートする定義) になります。
6. FPは、どのように 計算するのかということよりも、 何を 計算するのかということを気にします。
7. 多くのFPは「高階」関数 (つまり、関数を操作する関数を、操作する関数) を利用します。


187 :デフォルトの名無しさん:03/02/27 22:32
>>186
関数プログラミングのプログラマーからも、一貫性のある意見を得ることは困難です。
群盲象をなでる、という言葉がぴったりです。

…というあたりも、>>145の状況をよく表している様な.....

188 :デフォルトの名無しさん:03/02/28 01:51
結局、関数型というのはパラダイム(考え方、捉え方)ということか。

そのうち誰かがC言語でも関数型プログラミングは出来る。
とか言ってくれないかな?オブジェクト指向の時のように・・・・

189 :デフォルトの名無しさん:03/02/28 09:01
C=プロレス=最強

190 : :03/02/28 10:08
>>188
ぐぐれ!
http://www.google.co.jp/search?q=functional-c+programming-language

191 :デフォルトの名無しさん:03/02/28 12:54
>>188
Schemeをやって、Cに戻ったら以前よりうまくプログラムを書ける
ようになったって話もあるようだよ。

192 :デフォルトの名無しさん:03/02/28 13:31
>>188
できるよ。
効率性も含めて犠牲になる部分が多いが。

193 :デフォルトの名無しさん:03/02/28 14:57
で、関数型言語って何ですか?

194 :デフォルトの名無しさん:03/02/28 15:18
>>193
君と僕にはそれはCだったということさ

195 :デフォルトの名無しさん:03/02/28 16:53
要するに、関数型言語って覚える必要の無い単語なのですか?

196 :デフォルトの名無しさん:03/02/28 17:04
>>195 知ってても得になるとは限らないが、知らないのは論外、てな知識と思われ

197 :デフォルトの名無しさん:03/02/28 17:11
必要って、何の必要性だよ
事業目的に使えるかどうかならば、F#でも勉強しとけ

198 :デフォルトの名無しさん:03/02/28 17:19
嬰ファがどうかしましたか?

199 :名無しさん@Emacs:03/02/28 17:38
つべこべ言わずにLispやっとけ。
おまいらに関数型言語は無用だ。

200 :デフォルトの名無しさん:03/02/28 17:46
関数型言語は無用
関数型言語は無用
関数型言語は無用
関数型言語は無用

201 :デフォルトの名無しさん:03/02/28 18:27
嵐は無用。

202 :デフォルトの名無しさん:03/02/28 19:05
川端康成の作品を読んだことがなくとも、日常の読み書きには困らないだろうと思う。
でも、日本語が読めるなら一度は読んでおいて損はないだろう。表現が豊かになる。
関数型言語も。いろいろとチャレンジしてみるのは良いことだと思うよ。

203 :デフォルトの名無しさん:03/02/28 19:31
Cの変わりになり得る関数型言語ってあるの?
当然インラインアセンブラとかもOKで。C++っていうのは
なしね。

204 :デフォルトの名無しさん:03/02/28 19:32
インラインアセンブラだとちょっと違うか。
関数型言語なりのそれに代わりうるものがあれば
なにもいらないんだけど<インラインアセンブラ。

205 :デフォルトの名無しさん:03/02/28 19:34
>>203 観点が違うと思われ。もし無理にでもってんなら、caml の カテゴリカル・アブストラクト・マシーンとか

206 :デフォルトの名無しさん:03/02/28 19:37
>>205
前にちらっとみただけなんだけど、あるWebサイトに
MLでOSとそれに最適化されたツール群を作るって言う
研究が乗ってた。どうも見た感じだとコンパイラの
製作(そのために言語の拡張をしてたのかどうかは分からない)
で撃沈してた模様。UNIX/Cに変わりうるようなパラダイムが
関数型言語の方面から出てくるのかなあなんて思ったりも
してたけど、実際は難しいみたいね。

207 :デフォルトの名無しさん:03/02/28 19:38
>>203
分かってにゃい証拠ハッケツ

208 :デフォルトの名無しさん:03/02/28 19:47
>>203
20年前にタイム・スリップして、TI Schemeマシンとか、Lispマシンを買ってきて貰いたまえ

209 :デフォルトの名無しさん:03/02/28 19:55
>>206
BSD UNIXって、Lisp研究用のブートローダだったと暴言する人も居たとか居ないとか・・・

210 :デフォルトの名無しさん:03/02/28 20:00
>>205
categorical abstract machineですか。
なにやらえらい難しそうですねえ。
いつも思うんだけど、citeseerなんかを眺めていると、
実装レベルとは関係無しに理論的にはどんどん進んで
いるんだなあと実感します。頭のいい人は凄いね、ホント。

>>207
分かってたらこんなアホなこときかないって

>>208
Lispマシンというのは実はUNIXよりもあまりにも技術的に進んで
いたがために、廃れてしまったのですかねえ。よく知らないですが。
まあUNIXならどんなヘタレでも使えるからね。こういうのも悪くないね。

211 :デフォルトの名無しさん:03/02/28 20:13
>>209
WindowsやOSXにしても、OSの枠組みとしては
UIの話を抜けば、4.2BSDからは何も進歩してないように見えるね。
そもそも進歩する素地があったとしても金にならなそう。。。

食えない分野の代名詞として理論物理というのがよく言われるけど
もしかして計算機科学の人もそうなんでしょうか?理論に裏打ちされた
技術って誰も興味なさそうですよね。。。

212 :デフォルトの名無しさん:03/02/28 20:55
>>210
>まあUNIXならどんなヘタレでも使えるからね。
Java と Lisp みたいなもんかも?

213 :デフォルトの名無しさん:03/02/28 20:56
>>211
でもないよ.最近,形式的表明をなんとかして
ソフトウェア工学に応用しようと頑張ってる.

ミサイルの制御系とか,バグの無いコードのために
従来は無茶苦茶な工数を掛けていたのを,形式的
表明の助けを借りて軽減しよう,という感じらしい.

OSX は漏れ,知らんけど,Windows は COM とか
でかい進歩と思うが?

>>210
廃れた理由は,汎用ワークステーションの性能向上が
激しくて,ハードウェアで実現するよりソフトでやった
ほうが断然イイじゃん,ってことになっちまったから.

でも聞くところによると,NTTのアレとかは結構高性能だった
とかいうことだけどどうなんだろ.

絶対的に間違ったアプローチだったということはない,
というのは AS/400 が証明してる(と漏れは思う)

タグ付きアーキテクチャの真似とかをソフトでやるには
限界あるもんね.

>>209
BSD のカーネルイメージのファイル名が vmunix なのは
VM が実装されたためで,なんで実装したかっていうと,
メモリ空間食いまくりの Lisp を動かすためだった,とか
いう伝説があったりとかね.

214 :hosyu:03/03/02 19:16
http://www.cafeshops.com/cp/store.aspx?s=lambda

215 :デフォルトの名無しさん:03/03/02 19:30
なんかの宗教みたいだな

216 :デフォルトの名無しさん:03/03/02 19:40
λ教?
・・・って昔どこかで聞いたような・・・。
ぐぐったら見つかったのはコレ↓だった。
ttp://www.namazu.org/~satoru/programming/sicp.html

217 :デフォルトの名無しさん:03/03/02 21:04
>>214
もはやラムダは円マークだろ

218 :デフォルトの名無しさん:03/03/02 23:06


219 :デフォルトの名無しさん:03/03/03 11:12
ttp://www.kurims.kyoto-u.ac.jp/~cs/lambda.html
↑総本山はココの山中にある,λ文字山算法寺と簡約神宮で,
修行を終えると単位互換制度により
ttp://burks.brighton.ac.uk/burks/foldoc/3/64.htm
↑λ算術騎士団と共通の徽章を貰うことになっている.

狂信的 Lisper は,構文解析はカッコで括れば全て
済むと考えており,BNF を毛嫌いしているため,
↓の最後のパラグラフにある
ttp://www.huis.hiroshima-u.ac.jp/jargon/LexiconEntries/BNF.html
black-on-green BNF buttons とλ騎士団の徽章が近くに
存在する状態は危険である.

220 :デフォルトの名無しさん:03/03/03 13:56
宗教法人作ろうぜ!

221 :デフォルトの名無しさん:03/03/03 14:04
ジェダイ騎士団みたいな奴か?

222 :デフォルトの名無しさん:03/03/04 12:53


223 :デフォルトの名無しさん:03/03/04 13:03
>>214
λティディ・ベアはSUNのティディ・ベアと互換性があるのか?
λTシャツを着ると、アポー信者や2ちゃねらーと、勘違いされるのではないか?

よく検討してから、購入させて頂きます。

224 :デフォルトの名無しさん:03/03/04 15:35
特攻野郎λチーム



MITで鳴らした俺達特攻部隊は………ダメだ思いつかないや.

225 :デフォルトの名無しさん:03/03/04 16:51
comp.lang.functionalのウォッチスレはここですか?

226 :デフォルトの名無しさん:03/03/05 09:45
どこにそんな話題が?

227 :デフォルトの名無しさん:03/03/08 01:18
hosy


228 :C maga:03/03/18 00:33
unlambda

229 :デフォルトの名無しさん:03/03/24 20:41
Part2スレの141に
>俺は、数式処理系(Macsyma〜Mathematica) と 命題処理系(ML?)に
>類似性を感じて、興味を持っていたので、乱入大歓迎。

という意見があったけど、実際の所どうよ?
雰囲気は確かに似ている様な気がせんでもないが

230 :デフォルトの名無しさん:03/03/24 22:25
C MagazineのC言語の連載にCは関数型言語であると書いてたんですけど
ほんとですか?ならボクにもやれそう....

231 :デフォルトの名無しさん:03/03/24 22:30
>>229
どうよ、と言われてもなー。
どっちも派生元である原始言語はLISPなんだよね。
類似性ってのはそういう事かと。

232 :デフォルトの名無しさん:03/03/24 22:42
>>230
違うってばよ。
Cマガの記事はたまに素人が書いてるので鵜呑みにできない。
「関数型言語*風*にも書ける」と書いてあるなら、あながち
間違いとは言えないけど、正解では絶対にない。
点数付けるなら、100点満点中25点ぐらい。

これはね、
「Cでもオブジェクト指向(風に書くことが)できる」
と言ってるのと同じ。

C言語と、関数型言語として洗練された構文と意味論を持つ
専用言語では、記述の幅からして比較にならない。

233 :デフォルトの名無しさん:03/03/24 23:05
MLの説明だけど、関数型言語の取っ掛かりとして参考になるんでは。
SML(Standerd) 演習
http://a414s1.it.nanzan-u.ac.jp/smlbook/smlwww/
初級ML講座
http://nt-p.net/adx/e/ml/mlkouza.html

C言語の時と同じ使い方をしようとしても、有り難味が判らないんじゃないかな。
論理学とか数学の知識は多少でもあった方がいい。

234 :アシュル ◆adhRKFl5jU :03/03/25 00:37
コンパイラの最適化に関してはまだまだgccに勝てる処理系はないみたいですが、
関数型言語の共通コンパイラバックエンドを作ろうというプロジェクトなどが
計画されたことなどあるんでしょうか?聞いたことないですが。

235 :デフォルトの名無しさん:03/03/25 00:51
gccは中間コードにlispを採用しています。
lispだと最適化がやりやすいため。

236 :アシュル ◆adhRKFl5jU :03/03/25 00:59
LISPはS式を使っているが、S式はLISPとは限らないべ

237 :デフォルトの名無しさん:03/03/25 22:18
> コンパイラの最適化に関してはまだまだgccに勝てる処理系はないみたいですが、
....

238 :名無しさん@Emacs:03/03/26 00:21
>>237
ACL以外で、まともな最適化まで考えられてる
処理系とかあるの?

239 :デフォルトの名無しさん:03/03/26 10:29
lispはdynamic typing・・・

240 :デフォルトの名無しさん:03/03/26 19:50
>>229
MLって元は定理証明システム用言語だった訳だけど、
数式処理も一種の定理証明システムなのではないか…
ちうあたりで、同じ様な処理が求められているという意味かも?

>>231
MLと断ってあるし、原始言語(LISP)はあまり関係ないと思う

241 :デフォルトの名無しさん:03/03/27 03:10
>>234
>関数型言語の共通コンパイラバックエンドを作ろうというプロジェクトなどが
>計画されたことなどあるんでしょうか?聞いたことないですが。

これなんてどうなんでしょう?
http://cs1.cs.nyu.edu/leunga/www/MLRISC/Doc/html/

242 :デフォルトの名無しさん:03/03/29 17:58
>241
なにこれ?

243 :デフォルトの名無しさん:03/03/31 03:21
GCC では ML や Haskell を扱ってくれないから、自分たちで作っちゃおう
ってゆー噺だと思われ

244 :デフォルトの名無しさん:03/03/31 03:33
そういや、HaskellコンパイラのGHCは中に丸々GCC抱え込んでたけど、
あれは、GCCの公式配布パッケージの中に取り込んでもらえないのかな?

245 :デフォルトの名無しさん:03/03/31 11:35
>>244
若干意味不明

246 :デフォルトの名無しさん:03/03/31 12:08
gccに含まれるのかどうかというのは何がポイントと
なるんでしょうか?バックエンドとしてgccを使うのは
なにもHaskell4.0Xだけではなかったように覚えてますが。

247 :デフォルトの名無しさん:03/03/31 12:09
s/Haskell4.0X/ghc-4.0X/

248 :デフォルトの名無しさん:03/04/06 07:38
O'Caml 入れた。感動した。ところでこれって読みはオキャムルで良いの?

249 :デフォルトの名無しさん:03/04/06 11:46
ラクダの絵が描いてあるから「お、キャメル」でわ

250 :デフォルトの名無しさん:03/04/06 19:40
漏れは、オッカムとかけてるのかと思ったが、違うか。


251 :名無しさん@Emacs:03/04/07 00:41
>>250
漏れもそうだと思ってたけど、
例の剃刀との関連が今一というか。

252 :デフォルトの名無しさん:03/04/07 17:28
>>248-251
スレ違いと思うのは漏れだけ?

関数型プログラミング言語ML
1:デフォルトの名無しさん :02/01/31 11:43
  関数型言語ML(SML/Caml/Ocamlなど)についてのスレッドです。
             ̄ ̄ ̄ ̄ ̄
http://pc2.2ch.net/test/read.cgi/tech/1012445015/

253 :デフォルトの名無しさん:03/04/08 00:51
スレ違いと言うか、より適切なスレがあるという感じだわな。

254 :デフォルトの名無しさん:03/04/08 00:53
ここは関数型言語一般についてのスレです。

255 :デフォルトの名無しさん:03/04/08 12:54
>>252
そのスレは以前↓の質問があったのですがシカトされたという経緯がありますた

720 :デフォルトの名無しさん :03/01/10 01:54
   OcamlとOccamは違うのですか?

256 :デフォルトの名無しさん:03/04/08 18:37
↓のサイトが、関数型プログラミング他について濃い話をしていて、なかなか興味深かった。
ttp://www.ops.dti.ne.jp/~cake-smd/hw/FrontPage.html

257 :248:03/04/08 22:37
スレ違いすんません。読み方に定説が無いようなので岡村君と呼ぶ事にします。
ところで O'Caml には lambda という名前のオペレータは無いんですね。
新鮮ですた。It's FUNny, isn't it?

258 :デフォルトの名無しさん:03/04/08 23:36
>>257
http://caml.inria.fr/archives/200106/msg00278.html

259 :デフォルトの名無しさん:03/04/09 09:46
>>258
.fr ドメインの理由で www.ocaml.org があったのか。(w


260 :デフォルトの名無しさん:03/04/11 20:22
関数型言語で、window処理のプログラミングをする事って
できるんでしょうか?
イベントをストリーム化するとかの理屈はなんとなくわかるんですが、
例えば現在のマウスカーソルを取得して何かしたりするクリティカルな
場合は、ストリームから取ってこれないですよね?

261 :デフォルトの名無しさん:03/04/11 23:28
Concurrent Cleanのデモアプリ
ttp://www.cs.kun.nl/~clean/About_Clean/Platform_Games/platform_games.htm

アクションゲームが書けるようだが。

262 :デフォルトの名無しさん:03/04/12 12:45
そんなリンク張られても・・・

263 :デフォルトの名無しさん:03/04/13 12:46
>>76
そんなことしてる処理系は何がありますか?
もしくは、どうやって調べられる?


264 :デフォルトの名無しさん:03/04/13 17:01
Lisp も含めて、関数型言語系スレが廃れてしまって寂しい限りじゃ。

265 :デフォルトの名無しさん:03/04/13 17:10
haskellスレの人たちも、
代数の勉強にいったまま帰って来てない
みたいですよね。。。

266 :デフォルトの名無しさん:03/04/13 18:28
最近、ちょっぴりモナドが分かってきたような気がする……。


267 :デフォルトの名無しさん:03/04/13 20:16
ttp://www.bagley.org/~doug/shootout/craps.shtml

処理速度は良いとして、メモリの使用量の違いが興味深いね。
こんな感じ
    http://www.bagley.org/~doug/shootout/bench/lists/

SML/NJ, bigloo, cmucl 辺りは結構メモリ食いだね。Haskell もかな。

268 :デフォルトの名無しさん:03/04/13 20:21
直リンしてしもた。

色んな言語(関数型多し)のコードを見られるのは面白いと思います。
別の意味でも笑えます("Hello there sailor" とかね)。

269 :デフォルトの名無しさん:03/04/14 17:28
>>268 直リンクとリファラと ime.nu


270 :山崎渉:03/04/17 15:30
(^^)

271 :デフォルトの名無しさん:03/04/21 21:39
もちょっと賑やかでもいいと思うが

272 :デフォルトの名無しさん:03/04/22 17:57
(^^)が賑やかになるのは勘弁して欲しい

273 :デフォルトの名無しさん:03/04/25 07:52
age

274 :デフォルトの名無しさん:03/05/02 22:26
MLスレ, Haskellスレ, LISP/Schemeスレ,,, スレ分散しすぎなんちゃう?
でも、なんで concurrent cleanスレないんやろ?

275 :デフォルトの名無しさん:03/05/03 03:59
ここでやればいいんじゃないの?
HaskellスレもMLスレも
ここからわかれたようなもんだし

276 :デフォルトの名無しさん:03/05/05 01:27
量的には分かれていて正解

277 :デフォルトの名無しさん:03/05/05 07:05
>>275
ここでやると埋もれてくから、スレ立てした方がいいよ。
寂れるの覚悟で。


278 :デフォルトの名無しさん:03/05/05 13:40
nani wo ?

279 :デフォルトの名無しさん:03/05/05 17:13
>でも、なんで concurrent cleanスレないんやろ?
立てろ

280 :デフォルトの名無しさん:03/05/06 05:12
Haskellと兼用でいいんじゃないの?

281 :デフォルトの名無しさん:03/05/06 18:49
いいの?
というか、なんでそんなにスレ立て避けるの?
Javaとかクソスレバンバン立ってるじゃん。

282 :デフォルトの名無しさん:03/05/07 11:13
スレ立つ→すぐ消える、じゃ情報が蓄積されない。
ただそれだけ

新スレ立てたらここにリンク貼ってねー

283 :デフォルトの名無しさん:03/05/07 12:57
Java to hikaku suru noha nanikaga chigau

284 :デフォルトの名無しさん:03/05/12 12:59
"nanikaga" tte nani Yo ?
tatoeba ??

285 :デフォルトの名無しさん:03/05/12 21:22
koko ha fpl no sure
Java ha fpl ni arazu

286 :デフォルトの名無しさん:03/05/12 21:47
omaera hiragana tsukatte kudasai.


287 :デフォルトの名無しさん:03/05/13 12:15

Java as a Functional Programming Language
ttp://www-compsci.swan.ac.uk/~csetzer/articles/javafunctional.pdf

288 :デフォルトの名無しさん:03/05/13 16:17
>>287
minakutemo daitai naiyou ga souzou dekiru
Java demo fp mitaina koto ga dekiru to itteirunodarou
sikasi sore ha Java ga fpl dearu koto wo imisinai

289 :名無しさん@xyzzy:03/05/14 03:44
java as a fpl <<<<(koerarenai kabe)<<<java -jar kawa.jar

290 :デフォルトの名無しさん:03/05/14 12:04
sara shi age

291 :anonymous@default:03/05/14 12:21
kokoha ascii only desuka ?

292 :デフォルトの名無しさん:03/05/14 14:25
kansuugata gengo ha ascii moji ni sika taiou sitemasen

293 :デフォルトの名無しさん:03/05/14 18:52
gauche

294 :デフォルトの名無しさん:03/05/16 22:06
Pythonの場合、「関数は、ファーストクラス・オブジェクトである」ので
rubyやperlと異なり、なんとか関数型プログラミングできる。っていうこと
でいいんでしょうか?

http://www-6.ibm.com/jp/developerworks/linux/010615/j_l-prog.html

295 :デフォルトの名無しさん:03/05/16 22:25
>>294
いいんじゃないですか。
でも正格言語では、末尾呼び出しのLOOP展開ができないと
本格的には使えないけど。

296 :デフォルトの名無しさん:03/05/16 22:26

Rubyで関数プログラミング
http://sky.zero.ad.jp/~zaa54437/programming/ruby/

297 :デフォルトの名無しさん:03/05/16 23:30
>>295
PerlもRubyも関数オブジェクトを生成できるけど、何が違う?
そういえば最近のPyhonはレキシカルクロージャ作れるようになったんだっけ?

ところで関数がファーストクラス・オブジェクトで、末尾呼び出しの最適化が
行われるPostScript言語も関数プログラミングできまつか?


298 :デフォルトの名無しさん:03/05/17 17:51
>>296
ものすごく読みにくいね。
背景とか行間とか。

299 :デフォルトの名無しさん:03/05/17 18:27
ありゃたぶんマッカーでしょう。

300 :デフォルトの名無しさん:03/05/17 18:43
>>298
Squeaker かも。背景とか。

301 :デフォルトの名無しさん:03/05/17 20:28
>>298
スタイルシートOffにすれば、まぁよめる。

302 :デフォルトの名無しさん:03/05/18 00:00
用語集の辺り、良くまとめたよね。

303 :デフォルトの名無しさん:03/05/18 15:46
>>300
Cleaner というべきかも!

純粋関数型言語 Concurrent Clean
http://sky.zero.ad.jp/~zaa54437/programming/clean/

304 :デフォルトの名無しさん:03/05/28 06:57
形無しラムダ計算で
字面を見て再帰だって簡単に判断する方法ってないの?
簡約すると元に戻る奴が再帰だよね?


305 :bloom:03/05/28 07:13
http://homepage.mac.com/ayaya16/

306 :名無し@沢村:03/05/28 07:29
おまいらよ、関数型言語なんてしょせん古典言語だよ。時代遅れの遺物だよ。ザコだよ。
おまいら、これからの言語はおまいらよ、これからの言語は量子言語しかないよ。
ふつーの言語では演算によって結果を求めるが、量子言語ではすべての結果は重ねあわせの状態でそでに存在しているから、その中から求める結果を選ぶだけよ。
求める結果は重ねあわせの係数で決まるのよ。
このあたりが古典言語と大きく文法が異なるところだな。
おまいらよ、人類の歴史は量子以前と以後とで2つにわかれるんだよ。
つまり、おまいらのは古典だな。

307 :デフォルトの名無しさん:03/05/28 07:39
http://www.google.co.jp/search?q=%E9%87%8F%E5%AD%90%E8%A8%80%E8%AA%9E&ie=UTF-8&oe=UTF-8&hl=ja&lr=

308 :山崎渉:03/05/28 12:29
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

309 :デフォルトの名無しさん:03/05/28 17:03
>>306
こんなところにこなくてよい

310 :デフォルトの名無しさん:03/05/28 17:49
ConcurrentCleanわかるやついる?

311 :デフォルトの名無しさん:03/05/30 12:50
Haskellスレか>>303のリンク先に訊くよろし
さもなくばcleanスレ立てる

312 :デフォルトの名無しさん:03/06/01 14:39
>>304
それは正規形を持たないという。
再帰は不動点演算子を使っているものをいう。

で、正規形を持つかどうかは判断できません。

313 :デフォルトの名無しさん:03/06/03 03:31
うーむそうかアンガト
英語の論文読んでも
closure analysisとかフロー解析しないとできなそうな
雰囲気だったしな〜


314 :デフォルトの名無しさん:03/06/04 03:15
SELFSELF問題

315 :デフォルトの名無しさん:03/06/04 03:18
((lambda(x)(x))(lambda(x)(x)))

316 :デフォルトの名無しさん:03/06/04 03:20
((lambda(x)(x x))(lambda(x)(x x)))
こうだったかも

317 :新しい文法スレの753 :03/06/05 06:23
>>785
>一番新しいものでも 3月21日だったので

それは残念だね。更新されるのを待つのがいいかもしれないね。
>>792
>でも、最左戦略で non-strict とすると、だいたい外側から試していくわけで、
>継続という処理が終わっていない部分は内側のように思えますが、
>そうなんでしょうか?

内側だろうが外側だろうが、まだ計算が終わっていない部分全て。

>また、Scheme で継続を呼び出すときは値をひとつ渡すわけですが、
>上記のように内側の部分を継続とすると、
>継続を呼び出したときに与える値はどこにはまるんでしょうか?

そりゃ、「継続で指定された場所」でしょう。

>Clean の簡約戦略は関数型簡約戦略だそうですが、これだとどうなんでしょう?

Cleanは知らないので答えられない。俺が教えて欲しいぐらい。

>また、仮にランダムに redex を選ぶような戦略を想定するとどうなるんでしょう?

それでも、計算されていない部分が継続で問題無いと思うが。

318 :新しい文法スレの753:03/06/05 06:39
>でも、こんな操作は書き換え規則では単純にはかけませんし、

俺もよくわからない。

>上の例に delay と force を入れると、
>Haskell や Clean のように、
>合流性や参照透明性が保たれるようになるんでしょうか?

おそらく、delayとforceを使うと、評価順が一定に定まってしまって、
戦略を選ぶ余地がなくなると思うが。
だから、確かに合流性は保たれるんだけど、これは、レデックスが
同時に複数でてくる言語とは違うような気がする。

たしかに、Haskellのような言語に参照透明性が保たれる
ように継続を導入するのは一筋縄ではいかなそうだな。

俺が単純に考えて思いつくのは、例えば「この場所では同じ
継続呼び出ししかできない」のような制約を課せば
合流性が保たれるように実現できるかもね。

つうか、俺は関数型の専門家でもなんでもないし、
ラムダ計算とかも昔少し独学した程度なので、
つっこんだこと聞かれても困るが。

第一、あなたの方が詳しいような気がするんだけど。(w
間違ったこと言っていたらスマソ。

319 :デフォルトの名無しさん:03/06/05 10:08
誰に対して答えているのかね?

320 :デフォルトの名無しさん:03/06/05 10:51
虚無に対して

321 :デフォルトの名無しさん:03/06/05 11:24
脳内掲示板に対する回答かね?

322 :デフォルトの名無しさん:03/06/05 16:41
新しい文法スレなんつーのがあったのね

323 :デフォルトの名無しさん:03/06/06 01:31
新次元新発想!新しい文法を作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1047970129/
600 あたりから関数型の話題になってますた

324 :デフォルトの名無しさん:03/06/06 23:16
>>318

結局、継続は関数型言語の純粋さを破壊する非関数型な機能のようですね。

325 :753:03/06/07 01:13
>>324
ハァ?
そんなことを書いた覚えは無いが。

326 :デフォルトの名無しさん:03/06/07 01:34
覚えが無くてもそれはそういうことなんですよ。

あと、合流性の定義は調べたほうがいいですね。
評価順を決めれば結果がひとつになるというのは
合流性が成り立ったことにはならないので。


327 :753:03/06/07 02:32
>>326
合流性の定義をそう解釈した覚えはない。
君が誤解している。
delayを使えば、「評価順を変える」などという
ことがそもそも出来なくなるので
戦略を選ぶ余地は無くなる。

それから、継承を使っただけでは合流性は損なわれない。

328 :753:03/06/07 02:34
例えば、Haskellにも絶対に変えられない評価順は存在する。
全てが全て、ラムダ計算のβ-簡約のように、評価順が
全く自由というわけではない。

329 :753:03/06/07 02:41
例えば君の出した例でわかりやすく解説すると、

(call/cc (lambda (k) (cons (k 1) (k 1))))

ならば、合流性は損なわれない。
全部k 1でそろえてるからだ。
これと同じ規則にしろとはいわないが、継続を使ったということが
イコール合流性が損なわれるということにはならない。

330 :デフォルトの名無しさん:03/06/07 03:01
ついでにいうと、δ項の機能を備えたラムダ計算
にも絶対に変えられない順序は存在する。
引数を計算しておかないとδ-リダクションは行えないからな。

331 :デフォルトの名無しさん:03/06/07 04:53
>>328

もちろん、そういうのはありますよね。
TRS のほうでいえば、ある redex を書き換えた結果として
新しく redex がでてくるなら
前者より先に後者を書き換えるのは無理ですし。

332 :デフォルトの名無しさん:03/06/07 04:54
>>327

合流性というのが、TRS の用語だということを知っていますか?

333 :デフォルトの名無しさん:03/06/07 04:57
そうそう、ご存知無いかもしれませんが、TRS というのは
Term Rewriting System の略で、項書き換え系というものです。

334 :デフォルトの名無しさん:03/06/07 08:14
項書き換え系とラムダ計算の関係がよく分からない。
どっちがより基本的な概念なのだろう。


335 :デフォルトの名無しさん:03/06/07 13:38
λ計算などにみられる簡約を抽象したのがTRS

336 :デフォルトの名無しさん:03/06/07 17:24
>>332
ラムダ計算において使用不可能な概念ではないでしょう

337 :デフォルトの名無しさん:03/06/07 19:15
どなたか、コンビネータについて教えてください。
あとスーパーコンビネータも。

338 :預言者:03/06/07 20:01
http://elife.fam.cx/mfg/


339 :デフォルトの名無しさん:03/06/07 23:19
>>336

そうですね。

それはそれとして、合流性じゃなくてチャーチ・ロッサー性と書いておけば
誤解を招かなかったかも、と後悔していたりします。

340 :753:03/06/08 02:07
>>339
最初からチャーチ・ロッサー性のつもりなんだけど。
誤解してるのはあなただね。
一体俺の発言の何を誤解してるんだろう。

341 :753:03/06/08 02:17
簡単に言えば、どのようにリダクションの順番を選んでも
最終的に同じ結果になるということでしょう。
もともと、「リダクションの順番が変わっても
同じ結果になる言語」(schemeは違うけど)に、
継続呼び出しを使ったって、

(call/cc (lambda (k) (cons (k 1) (k 1))))

のように継続呼び出しが一定の形をしているのなら、
同じ結果になるはず。
違うというのなら、例を示して欲しい。

342 :デフォルトの名無しさん:03/06/08 02:17
>>340
だったらはじめからチャーチ・ロッサーと書け。
こいつもそうだけど、分からないことを分かるのが高度とか思い込んでる風潮があるよな。
たとえば国語の試験。「作者は何を考えてこの文章を書いたのか答えなさい」
こんなの読んで分からない文章書くこと自体が間違い。
人によって解釈がまちまちになるほど説明が下手な文章を書くほうが間違い。
にもかかわらず、この設問のように、気持ちを察することの方を勉強させようとする。
本来は著者にもっとわかりやすい文書に書き直させるのが正解。
こんな教育やってるから、文章(説明)の下手なやつが多くて、
わからないと「実はこういう意味なんだ」「行間を読め」とか、なら最初から
そう書けボケェ!というやからが増える。

上場企業には財務を説明しなければならないアカウンタビリティ(説明責任)という
のがあって欧米では常識なのだが、日本は聞かない方が悪いみたいな風潮があるからな。
特に仕事なんかそうだよな。ドキュメント一式渡して、あとわらかないところは聞いてくださいと。
しかし最初はわからないところもわからないんだから、わかるように説明するべきなんだが、
みんな先輩からもおなじ教育受けてきてるから、おんなじことを繰り返す。

とくにソフトなんて客と1次請け、1次請けと下請けと、階層が多いんだから、なおさら
説明は大事。にもかかわらず、説明の重要さがわかってないから生産性が低くなり、
なんで生産性が低いのかすら理解できないということになる。さらにみんなこんな
もんだとか「みんな」意識が芽生えちゃって、問題とも思わなくなる。おまいらの職場も
こんな感じだろ。ちなみにもれが引き継ぎすると、このあたりの説明資料および説明行動
するから、すげぇ早く引継ぎが出来る。だいたい最初に自分が教えてもらったときの
3倍くらいの早さで理解してもらえる。相手の気持ちになって、自分から説明しようという
気持ちを持つだけのことなのにな。


343 :デフォルトの名無しさん:03/06/08 02:56
関数型言語の一番の売りは
副作用のない関数を簡単に定義できる事ですか?

344 :デフォルトの名無しさん:03/06/08 03:35
>>342
確かに説明が稚拙なのが問題なときもあるが、説明を理解できないのが問題なときもあるのだよ。

345 :デフォルトの名無しさん:03/06/08 07:38
>>340

それなら、チャーチ・ロッサー性を誤解してますね。
チャーチ・ロッサー性は、
ある項について正規形がひとつしかないことをいうのではなく、
全ての項について正規形がひとつしかないことをいうので。

まぁ、∀と∃の違いがわかってないということか。

346 :デフォルトの名無しさん:03/06/08 07:44
>>342
横から口出し失礼。
相手の立場にたって説明することの重要性については大賛成だ。
だけど、チャーチロッサー性≡合流性を知らないとは普通考えない、と思う。

347 :デフォルトの名無しさん:03/06/08 08:28
説明が重要なのはもっともなので、もう少し詳しく説明しよう。

チャーチ・ロッサー性というのは、すべての項について、
もし正規形にたどり着いたならそれは同じ項になる、
ということなので、たとえそうなるような
(call/cc (lambda (k) (cons (k 1) (k 1))))
という項が存在したとしても、そうならないような
(call/cc (lambda (k) (cons (k 1) (k 2))))
が存在する限り、チャーチ・ロッサー性が成り立ったことにはなりません。

そして、チャーチ・ロッサー性は参照透明性を実現する性質で、
これが成り立たないものは関数型として純粋とはいえません。
もちろん「純粋関数型」の定義が私と違うひとがいる可能性はありますが。

Scheme の継続を使うとチャーチ・ロッサー性が満たされなくなるということは
この継続は関数型言語の純粋さを傷つける機能というわけで、
継続という機能は関数型ではない、ということなのです。

348 :デフォルトの名無しさん:03/06/08 09:35
>>347
>>753もそれは分かってると思うよ。
合流性を損なわない範囲で継続の概念を定義できる、ということだろう。

では、継続の本質とは何か? という方向に行けば議論がかみあうのでは
ないかな。

349 :デフォルトの名無しさん:03/06/08 14:33
本当に君らはくだらないな。

350 :753:03/06/08 16:24
>>345
いや、俺はそれはわかってるが・・・

>>347
だから、「全ての項」に初めから含まれていなければいいと言ってるんだよ。
つまり、例えば

(call/cc (lambda (k) (cons (k 1) (k 2))))

のような書き方は文法で禁止してしまうわけだ。
こうして、初めから存在しないことにしてしまう。
そうすれば、合流性は保たれるし、なおかつ継続も使える。
もちろん、なにか別の使ってもいい場所で(k 2)を使う
ということもできるだろうし、別の文法規則を考えたっていい。

351 :デフォルトの名無しさん:03/06/08 17:17
>350 それは失礼しました。

では、具体的には、どういう文法にするのですか?


352 :デフォルトの名無しさん:03/06/08 18:02
文法というか、意味解析じゃないのかな
文法を変える必要はない気がするけど

353 :753:03/06/08 23:45
>>351
てか、何で俺がそこまで考えてあんたに教えなくちゃいけないんだ。
あまり役には立たないが、継続呼び出しを全部同じ形にすれば、継続が
使えるのは確か。普通に考えれば、

・同一エリア内では継続呼び出しを全部同じ形にしなくてはならない。
・別のエリアでは別の呼び出しを使っても良い。

この二つの規則を組み合わせることで、ちょっとは役に立つように継続を
実現できるのではないかと思う。この「エリア」をどうするかが大きな問題だが。

あとは、モナドなどが使えるかもね。
いずれにせよ、矛盾なく考えるのは非常に難解そうだが。

354 :デフォルトの名無しさん:03/06/09 01:01
(call/cc (lambda (k) (cons (k 1) (k 2))))
(define f (lambda (k) (cons (k 1) (k 2))))
(call/cc (lambda (k) (f k)))
(call/cc f)
継続とその他って、別々にした方がいいかもね。
どちらにしろ、そろそろschemeの範疇で考えるのは限界がある気がする。

355 :デフォルトの名無しさん:03/06/10 02:02
>>353

なにかが存在するという主張において、
具体例が出せなければ説得力が皆無だからです。
説得力皆無でもかまわないというのであれば
「教えなくちゃいけない」わけではありませんし、
背理法での証明とか具体例なしに説得力を高める方法もありますが。

それはそれとして、
(call/cc (lambda (k) (if #t X (k Y)))
という例を考えつきました。
この場合、チャーチロッサー性を成り立たせるためには、
(if ...) を先に簡約した場合と (k Y) を先に簡約した場合で結果が一致しなければなりません。
つまり、X と Y は(正規形があるなら)一致する必要があります。

ということは、たとえば大域脱出に使おうと思っても、
脱出するときの値とそうでないときの値を自由に変えられないわけです。
なんか、考えれば考えるほど、役に立つ形で継続プリミティブを導入するのは
不可能ではないかという印象を強く感じています。

356 :753:03/06/10 18:25
少なくとも俺は具体例をはじめから一つ提示しているので、その俺に
対して「具体的にどうしたら良いのですか?」と聞く必要性を感じない。
少なくとも351の時点では、俺が提示した具体例を、あなたが完全に否定
出来ていない以上、これ以上の説得力をもたせる必要性も感じない。

> (call/cc (lambda (k) (if #t X (k Y)))
> という例を考えつきました。

それは、ifの評価順を条件判定を先にするようにしてしまえば良いし、
それで特にifが役に立たなくなるとも思えない。
継続呼び出しをifの中で使うのを禁止するという手もある。

>なんか、考えれば考えるほど、役に立つ形で継続プリミティブを導入するのは
>不可能ではないかという印象を強く感じています。

難しいだろうね、とは思うし、不可能とまで断言するには根拠が薄すぎる
と思うが、別に役に立つと主張したいわけでもないので、俺はどうでも良い。

関数型の特徴と矛盾する機能ではないと言ってるだけ。

357 :753:03/06/11 04:31
一つ思いついたのだが、継続呼び出しの後、プログラムの終了
までたどり着いたら、継続呼び出しの場所(直後の継続)へ
また戻ってくれば全ては解決するんじゃないのか?
これも一つの解決方法ではあると思う。

あまり役には立たないだろうけど。(w

358 :デフォルトの名無しさん:03/06/11 23:34
>>356

尋ねているのは具体的な項ではなく、具体的な文法です。

あぁ、もしかして、
(call/cc (lambda (k) (cons (k 1) (k 1))))
という項のみが許される文法ということですか?

それはそれとして「評価順を条件判定を先にするようにしてしまえば良い」
というのはやはりチャーチ・ロッサー性を理解していないのではないかと思えます。

if の中での禁止は私も考えましたが、一般に必ず評価されるようなところにしか
継続呼び出しを書けないのなら、必ず継続が呼び出されて外側が削除されるわけで、
その削除されるところには何の意味があるのだろうかという疑問が湧きます。

いずれにせよ、純粋関数型言語に役に立つ形で継続プリミティブを入れるのが
困難なのはたしかそうですね。


359 :753:03/06/12 03:54
>あぁ、もしかして、
>(call/cc (lambda (k) (cons (k 1) (k 1))))
>という項のみが許される文法ということですか?

はぁ〜。俺の話全く読んでないんだね。
「継続呼び出しが一定の形をしている文法」のこと。
これに対して、その後、あなたが、反例を一つ示した(ifのこと)から、
俺が解決策を示した。
この流れすらわかってないのかね。。。

>それはそれとして「評価順を条件判定を先にするようにしてしまえば良い」
>というのはやはりチャーチ・ロッサー性を理解していないのではないかと思えます。

あのなあ、評価順を文法で決めてしまえば、戦略を選ぶ余地はなくなるの。
枝分かれする余地がないの。だから、チャーチロッサー性なんて当たり前に
成り立つの。お分かり?
余地がある場合にチャーチロッサー性が成り立つかどうかが問題になるわけ。
「純粋」であることと、「評価順が複数あって選べる」ことは別問題なの。
あんた基本的なところから理解できてないね。
こんな人と話してたたのか・・・

>その削除されるところには何の意味があるのだろうかという疑問が湧きます。

言ってることが意味不明。

>いずれにせよ、純粋関数型言語に役に立つ形で継続プリミティブを入れるのが
>困難なのはたしかそうですね。

ま、評価順が一つに決まってる純粋関数型言語なら簡単だけどね。
あなたは、純粋関数型言語と言えば、レデックスが同時に複数出てくる
言語しか頭にないようだけど。

360 :753:03/06/12 05:21
例えば、引数が一つしか書けなくて、

(((if #t) 1) 2)→((if_#t 1) 2)→(if_#t_1 2)→1

と簡約されるシステムが仮にあるとする。リストの先頭が関数でない
場合の簡約は無いとする。
このとき、評価順は一つに定まり、戦略を選べない。
適当なマクロを備えれば、見た目をSchemeらしい形にすることも
可能だと思う。
役に立つかどうかは別問題だけど。

361 :デフォルトの名無しさん:03/06/12 20:57
引数には正規形しかかけないんですか?

もし正規形以外に任意の式が書けるのであれば、
(((if #t) (((if #t) 1) 2)) 2)
というように redex が 2つ存在する項が存在します。

一般に、関数適用構文には関数部と引数部がありますから、
両方に redex を含めば複数の redex が存在することになります。
さらに一般には、関数適用に限らず2つ以上の子をもつ項が存在すれば、
複数の redex が存在する項を作れるでしょう。

つまり、そういう構文がある言語では常に戦略を選ぶ余地があります。

そういう構文が存在しない関数型言語っていうのはまったく考慮していませんでしたが、
それはそれで常識はずれで興味深いですね。

362 :デフォルトの名無しさん:03/06/14 02:06
iffとifって違うの?
iffってなに?


363 :デフォルトの名無しさん:03/06/14 02:09
iff:

if and only if, i.e. necessary and sufficient.


364 :デフォルトの名無しさん:03/06/14 21:34
iff ⇔ "⇔"

365 :デフォルトの名無しさん:03/07/01 17:55
ICFP Programming Contest 2003
http://www.dtek.chalmers.se/groups/icfpcontest/
The Contest is Over!

参加された方います?

366 :_:03/07/01 18:03
http://homepage.mac.com/hiroyuki44/hankaku10.html

367 :山崎 渉:03/07/15 10:21

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

368 :山崎 渉:03/07/15 14:19

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

369 :山崎 渉:03/08/15 17:30
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

370 :デフォルトの名無しさん:03/08/15 22:21
haskellの\って、MultiByte圏を完全に無視してるよね
気に食わん

83 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)