関数型言語Part3

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ

関数型言語Part2
http://pc3.2ch.net/test/read.cgi/tech/1007387924/
3デフォルトの名無しさん:02/11/17 19:12
3ゲト?ズサ?
     〃      ヽ     .|
     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
>>7
sage
9デフォルトの名無しさん:02/11/29 17:07
過去ログだれかもってませんか?できれば.dat形式でキボンヌ
>>9
Part2は985レスまでの持ってます。
かちゅーしゃのログ形式(dat)です。
UPローダお願いします。
1110:02/11/29 17:16
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
東大米澤研がんがれ!!
つかよ、この前のプログラミングコンテストで優勝した以外ないだろ
17デフォルトの名無しさん:02/12/07 21:53
>>15
Kurimsもがんがれ!!
18デフォルトの名無しさん:02/12/08 02:01
JAISTの大堀研と東大の武市研もすごいぞ
具体的に示してくらさい
20デフォルトの名無しさん:02/12/09 22:08
何をれすか?
すごさを
catamorphismの訳語って何?
カタモーフィズム
24デフォルトの名無しさん:02/12/19 11:07
片想いズム!
(´-`).。oO(サム。。。。)
26デフォルトの名無しさん:02/12/20 22:41
これから関数型言語を勉強したいと思うのですが、scheme, haskell, sml, ocaml,,, どれがいいですか?
scheme
漏れも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/
じゃがんぱって。
scheme 勉強して TeXmacs 日本語化しる!!
31デフォルトの名無しさん:02/12/25 14:06
、ウ、?、ォ、鬢荀?、ハ、? F# ウ?!?
ttp://research.microsoft.com/projects/ilx/fsharp.htm
>>31
リンク先はともかく、文字化けしてると思うぞ。
ん?してないぞ
、ウ、・ォ、鬢荀・ハ、・F# ウ・?
sjisで書けっつーの。
>>574
大丈夫だ。安心して書き込め。
どこよ。

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

うれしいなぁ。

大阪って何?(´・ω・`)
40デフォルトの名無しさん:03/01/09 14:43
>>266
う〜ん、上手く伝えられてないかな?

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

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

これ以上はスレ汚しになりそうなので消えます
======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
────────────────────────────
どっかの奴がほぼすべての板のほとんどのスレにこんなのばらまいてます↓
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を提出することがある。
何か既存の言論機関を味方に付ければ良かったのにと今更ながら思う、、、
大体批判と誹謗中傷の違いなんてその言った人間を保護する所が社会的にどれぐらいの
地位なのかによって変わってしまう、、、言論の自由なんて力が無ければ主張できないんだよ、、、
test

一応一個だけ↑の事答えていただけたらTELします。
引っ張ってごめんなさい!
いやぁ、いろんな人から電話かかってきておもしろかった。
んじゃおやすみなさい(3回目)
【社会】動物病院裁判で2ch管理人の控訴棄却★4
http://news2.2ch.net/test/read.cgi/liveplus/1040833655/

裁判ネタ雑談は↑が該当スレです。
各板「のトップに「当インターネットはフィクションであり・・・・」ってのせとけばそれで良くない?
訂正
×fusianasann
○fusianasan
50デフォルトの名無しさん:03/01/10 13:28
CGIのバグか?
51あぼーん:あぼーん
あぼーん
>◆/OQtXsetN
>文系・女性。下痢と便秘をくりかえしているらしい。
>大物コテ(腐れ30★)に粘着してる空気コテ。

と年中書かれております。「事実」でもいちいちその板の住人に説明するのが
面倒になったんですよ。否定はしないですよ。でも、面倒ですよ。
だから、文句があるんならメールくださいよ。(名無しの粘着さん)
としつこく書いている自分が情けない。
うざったい荒らしが減るのなら。
各板のTOPに一定期間、お知らせみたいに貼ってたら?
「2ちゃんねるではすべての書き込みのIPを記録します」って
メルマガとってない、運営板も見ないってユーザーのほうが多くない?
解除されたりしないのかな?
2chには自由を身勝手と履き違えている人が多すぎる
それにどうしても匿名で告発したかったらインターネットカフェや
漫画喫茶などで書き込むことはできるはず
電気のインターネットコーナーでもいいしね
荒らしや誹謗中傷してる奴は暇を持て余してる身勝手な奴がほとんど
こいつらのためにわざわざ匿名にする必要はまったくもってなし
子供だからわかりませんってほんとに言ったの?>にかいどー氏に
漏れも生っす。
大統領になりたいなら投票します。
おながいします。。。
IPを記録されたくなので2ちゃんに書き込むのはやめた。
======2==C==H======================================================

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

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

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

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

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

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
よーし、これからは匿名性の保てるインターネット喫茶がはやるぞ(爆
「○○酒造が営利のために食品管理の工程で
 ワインに毒性の高い物質を入れている。」
と書き込んで、後日さらに細かく不凍液を入れている
細かいバッチ工程を誰かに書かれそうになって
慌てて企業側が暴力団に金を渡して
ひろゆこ氏へIPとリモホを出せと脅す。。。。。

山奥に連れ出され遺体を埋める穴の横で
暴力団に尋問された場合、
ひろゆこ氏は出すのかな?
 IP記録告知以後、2chのどの板も、どのスレも、だいぶ静かになった
ような気がする。

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

キン肉マンに出てくるウールマン?
殺人予告スレ発生。

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

悪戯であることを祈る。
お前のは議論じゃないよw
「これ言っていいですか?」 「これ言うとヤバイですか?」 って他人に聞いてるだけw

寝るのがイヤなら、教えて厨は初心者板に逝ってねw
おそらくいままでの荒らし全部同一人物だろ
岡田克彦ファンクラブからのご案内です。岡田克彦氏の卒業した早稲田大学
政治経済学部に比べて著しい低学歴、特に、ひろゆきの卒業した中央大学文学部
のようなヘボい大学に共通しているのは、文化水準が低いという事です。18歳から22歳を
ヘボい大学で過ごすということは、致命傷と言えます。2ちゃんねらーの大半は
岡田克彦氏に比べて、著しい低学歴ですから、取り返しはつかないのです。
せめて、http://www.geocities.co.jp/MusicHall-Horn/1091/で、氏の作品に触れましょう。
Internet Service Providerが契約者に対し
顧客情報の開示を行うことを明らかにするだけだ。
責任は書き込んだ奴が取るだけ。
最近カール★さん見ない・・・
71山崎渉:03/01/13 18:52
(^^)
72山崎渉:03/01/15 18:06
(^^)
副作用のない純関数型って配列の更新するたびにコピーするの?
なんか仕組みがあるんか?
遅延評価的には,コピーが起こるのは参照された時では?
75山崎渉:03/01/23 21:51
(^^)
その配列がもう評価されることがないと判っていれば、書き換えてしまってもいいのでは?
hozen age
勉強しようと思ってClean 2.0.3入れてみたけど、"Unable to run compiler: 〜"とか言われてコンパイルできん。
1.3.3ではExampleは動いているのに
Enviromentのコンパイラのpathはあってるんだけど。
なんか設定変えるところとかあるんでしょうか?
>>78
Haskellに汁!って言われるだけかも
2.0.3はまだリリースしてましぇん
CleanってサンプルにDirectX使ったゲームあるよな
すーぱーまりおみたいなやつ。ちょっと感動した。
8278:03/02/02 22:55
ううっ 2.0.2だった
しばらく1.3.3で遊んでみます
83デフォルトの名無しさん:03/02/18 19:55
最初スレは9ヶ月,part2スレは11ヶ月で次スレ立ったのに,
このpart3スレは3ヶ月で80そこそこか...
関数型言語の時代も,そろそろ終わりって事かな?
>>83
2chの厨房にとってだけって話じゃないの?
Ruby>>>>>>>>>>>>>>>>関数型言語
86デフォルトの名無しさん:03/02/19 01:34
CからC#への移行なら生産性あがって当然よ。
関数型言語からオブジェクト指向言語に移行するわけだから。

C++からC#への移行はどうかな。生産性は対して変わらんよ。
>>86
C++を使えないのに無理やり使っていたせいで発生していたバグから
解放されるかモナー。
何故に「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/
平林雅英タンが,関数型言語についてナンも知らんのに
『 ANSI C/C++辞典』に「関数型言語」
なんて立項して大ボケ書いてたりしてるのがデマの
泉源のひとつ.

いわゆる「純粋な」関数と,
C とかの「術語としての『関数』」の,
区別がわかってないっぽい.
93デフォルトの名無しさん:03/02/19 14:49
平林タンを起点としてドミノ状に間違えているのでつか?
そろそろ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
このヒト、再帰できれば関数型って思ってんですかね?
かく言う私も廿年位前迄はそう思ってたんですが…。
参考 >>4
この26〜7年で、関数言語の定義も随分洗練されたよね
>>97
違う。
この人的には手続き呼び出しが関数のような形を
している言語は関数型言語と呼ぶらしい。
そしてPascal は function と procedure を使い分け
られるから関数型には入らないらしい。

関数型言語という言葉をどこかで見かけて、
その意味を勝手に想像して本に書いちゃった
・・・って感じ?
100100 get:03/02/22 19:59
3ヶ月と5日かかったのか
>そしてPascal は function と procedure を使い分け
>られるから関数型には入らないらしい。
Pascalはハイブリッド型関数型言語です。
C++が純粋なOOPLであるSmalltalkとの対比でハイブリッド型OOPLと呼ばれるのと同様です。
あんまり笑わさないでください
elisp を haskell や ocaml に置き換えるとすると、
text property はどうやって実現するのだろう。
text property はあらゆる型のオブジェクトを保持できるリストです。
>>99
>LISP, LOGO, APL, BCPL, B, C

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

LISP -- 一応判ってるのか?
LOGO -- なんでココで LOGO なのか,ぜんぜんワカラン
APL -- FP の先祖だから挙げた?
BCPL -- CPL から関数型的な部分を取ったのが BCPL と思うが...
    単に C の先祖の B の先祖だから載せたんだろう.たぶん.
B, C -- 略
>>103
そもそもlispのリストはあらゆる型のオブジェクトを保持できるんだから
問題はそこだけではないはず
106一応:03/02/23 23:53
>>104
Lispは、「古典的な意味」の関数型言語でしかないよね
何を言っとるんだチミは
久々の燃料投入ですか?
109一応:03/02/24 01:56
例えばLispには、prog とか goto といった手続き的プログラミングの要素がなだれ込んじゃってるから、
純粋な関数型言語とは言いにくいよね。
110つうか:03/02/24 01:59
副作用つかいまくりぃーのLispのどこが関数型言語じゃぁーーーー?!
>>109
それはそうなんだが、そのことと>>106
はどう繋がってるんだ?
数学のおベンキョしてる方?
「古典的」って別に大した意味はなくて、
バッカスのFPとか出てくる前は、Lispみたいなのが「関数型言語」の代表格だと思われてた時代もあったね、
つう程度の意味。わかった?
(´・ω・`) . 。 o O (だんだんヴァカスレになってきているヨカーン・・・)
>>112
デムパさんですか?
そして糞質問投げた>>111 は戻ってこない、と。
(´・ω・`) . 。 o O (日曜深夜に2ちゃんでのたくってるヒッキーにデムパ扱いされるとは・・・)
前スレの面影がまったくなくなったな。
そうしますと、Lispは関数型言語の仲間にいれておくべきなのでしょうか?
CLtL2とか見た範囲では、なんでもできる実用言語で、
そのコアの部分にラムダ計算の仕組みがある、って程度にしか認識していないのですが。
>>117 前スレも、そのまた前スレも、そんなに大したもんではない、
と思う
>>118
別に厳密な定義があるわけじゃないから,どっちでも
いい.修辞的には「最も関数型らしくない関数型言語」
とか言われたりする.

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

Lisp のラムダには,確かに,便宜的に導入された,って
雰囲気が多分にある.Scheme はそのあたり,部分適用とかを
だいぶすっきりさせてる.
121デフォルトの名無しさん:03/02/24 08:22
ここではλ計算はなかったことになってるのか?
122120 != 112:03/02/24 09:58
>>121
理論のほうから見れば確かに最初ッから Lisp は
ハイブリッド的だった,ということ?

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

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

オブジェクト指向と C++ みたいなもんかニャ
G.Hutton的には、Lispは関数型じゃないよ。
LISPは元々関数型言語だよ。
純粋じゃないだけで。

>>120
>いい.修辞的には「最も関数型らしくない関数型言語」
>とか言われたりする.
誰が言ったんだよ。
125デフォルトの名無しさん:03/02/24 21:07
関数がファーストクラスな言語なら関数型言語でいいんでしょ?
関数を安全に変数に代入(束縛?)出来れば。

Cでも無理やり関数をポインタに突っ込めば出来なくないでもないけど
決して安全じゃないよねー。
安全とは?
127>>125:03/02/24 21:31
その定義はちょっと・・・。
Pythonとかは関数がfirst classだけど関数型言語じゃないよ。
128125:03/02/24 21:56
>>126
暴走しないという程度

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

関数がファーストクラスなことと言語の作者がこの言語は関数型ですと
主張すれば関数型言語と言っても良いのでは?と思っているからです。
はい。
129デフォルトの名無しさん:03/02/24 21:57
式一つに統一されてるというのは重要な要素だべ
なんで重要かといわれれば答えられないが。
まぁ、気分の問題だ。
副作用がないのが関数型だと思ってたけど違うの?
>125
関数がファーストクラスってのはあんまり本質とは関係ないぞ。
関数型言語とは、基本的に手続き的な処理フロー(C言語でいう、
複文に当たる物)が無く、数学的な式と同じ様に記述できる事を
目的とした言語。
で、実用上それだけじゃ限定された使い方しかできないので、
手続き型と同じく副作用も起こせる様に拡張されているのが現状。
数学的な意味を保ったまま間接的に副作用を起こせる言語も
ある。(HaskellやConcurrent Cleanとか。)

LISPは現在でもリスト処理においては本来の関数型言語として
記述できるけど、CommonLispまでの一連の拡張で汎用型言語という
意味合いが強くなっている。
134125: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はハイブリッド型関数型言語です。

関数型言語の定義を説明してみて!
>>135
関数型言語の定義を説明してみて!
>134
IOみたいな帰納的に生成できない対象に対して参照透明性を与えることはできるの?
>>137
「帰納的に生成できない」とはどういう意味ですか?
>138
代数的ではないこと。
数やリストのような代数的対象は生成したときに振舞いが一意に
決定される(代数的対象に関する各演算の結果が満たす等式は帰納法で
証明される)。つまり始対象(自然数なら0、リストなら[])からの
一意な同型写像が存在する。IOではそのような始対象が存在しない。
140デフォルトの名無しさん:03/02/25 11:20
>>139
でもそんな限定する必要ないと思うんだけど。
>140
じゃあ、参照透明性はどうやって定義するの?
別に透明でなくてもいい・・・かも。
偉い人というか、多少でもわかってそうな奴っていないっぽいな。
125はただの知ったか厨みたいだし。
関数型言語って何ですか?
このスレってさ144の質問に答えるためにスレの大半を使ってないか?
ttp://www.cs.nott.ac.uk/~gmh/faq.html#functional-languages
に不満な点があるんだったらスレを消費しても構わんと思う
やっぱLispは関数型じゃないだろ?
funcallとか特別なのがあるしな。
これも要件の1つだろ。
148デフォルトの名無しさん:03/02/25 16:22
schemeにはそんなのないよ。
>147
別に関係ないとおもうけど。
150125:03/02/25 20:22
>>143
>偉い人というか、多少でもわかってそうな奴っていないっぽいな。
>125はただの知ったか厨みたいだし。
そのとおりです。
143さん、関数型言語って何ですか?
出来れば具体的な言語を挙げて説明してくれると嬉しいです。
151not 143:03/02/25 21:56
↓の頁の最初のあたりが参考になるかも
http://www-6.ibm.com/jp/developerworks/linux/010615/j_l-prog.html
>>150
一問一答で簡単に答えの得られる質問じゃないと思われ。。
全体像を理解するのに少なくとも本一冊はかかるような。

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

などがあります
>>152
一行に要約して下さい。
>>149
Lispでは関数が擬似ファーストクラスだということなんだが。
ファーストクラスが関係ないとなると、
関数型言語の輪郭は益々ぼやける。
関係ないってことはない。
必要条件だけど充分条件じゃないってこと。
>>155
関数がファーストクラスでないと関数型言語とはいえないということになりますか?
157デフォルトの名無しさん:03/02/26 00:19
「関数プログラミング」バード&ワドラー著 武市正人 訳 近代科学社
引用開始
関数プログラミングとはプログラミングを数学的な活動として
とらえる考え方であり、本書ではそれを特定のプログラミング言語
にはよらず数学の表記法を用いて紹介する。
引用終わり
>>157
関数型言語の定義はどうなってますか?
159デフォルトの名無しさん:03/02/26 00:45
>>157
上記の本では特に定義されていません。
Miranda、MLなどが関数型言語と考えられているようです。
bit 1999 3月号 で武市先生による関数プログラミングの解説が
あります。私見ですが、数学的活動ととらえる関数プログラミングを
支援する機能をもつものが関数型言語ではないでしょうか。
"式"を記述した関数を組み合わせて"計算"を行うのが関数型プログラミングであり、
それを支援するのが関数型言語だと認識してる。
命令型言語でも注意すれば関数型っぽいことできるけど、Rubyを関数型言語とは言わないしね。

あなたが関数型言語だと思うものが関数型言語です。
ただし他人の同意を得られるとは限りません。
161デフォルトの名無しさん:03/02/26 03:57
関数型言語のメリットって何?
>>161
何だと思う?
数学での式って何か考えてみたけど、要は等式に代表される関係式でしょう。
だからむしろPROLOGみたいな宣言型とかOPALのような代数型の方が数学っぽい。
で?
163 みたいなのしかいないのか?
166デフォルトの名無しさん:03/02/26 10:17
言語ごとの機能によるけど
引数と返り値に関係づけをつくることができて
それが数学ぽかったり、見たまんまだとよりいい。

で、入出力にはそんな関係づけはないと。
>>164-165 このスレ、こういうやつがたびたび湧いてくるけど
なんなんだ?おれの予想はRuby厨、Java厨、boost厨のどれかだと
読んでるけどあたりですか?
数学っぽさが関数型言語の指標かどうかは分からない。
計算の単位が全て関数であることが重要なんであって、
数学らしさとは必ずしも一致してないような。
プログラムのソースコードをそのまま明細書にはっつけて
アルゴリズムの申請がみとめられるような言語、はまだですか?
余代数的な対象も代数的に書かなければならないところが気持ち悪い。
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
「使いこなす」というのがどの程度なのかわからないけれども。
プログラミングを楽しむ程度なら高校数学の知識と推論能力
があれば十分だと思うよ。
関数型言語って、教育用言語として定着しつつあるよね
やっぱJavaとかBasicじゃないの?
教育用といえば
181デフォルトの名無しさん:03/02/27 19:13
>>180
現実はそうかもね。高校はBasicかぁ。
Schemeの方が絶対に良いと思う。
でも学校出た後のことを考えるとjavaの方が就職率高いと思う。
教育のためなのか?就職のためなのか?
ということなんでしょうね。
183デフォルトの名無しさん:03/02/27 20:30
http://www.shiro.dreamhost.com/scheme/trans/icad-j.html
を見て思ったのですが「Lispのユニークさ」の2番、3番、5番、6番
の条件が満たされていれば、関数型言語?
184179:03/02/27 21:38
>>180-182
>>179 関数型言語って、教育用言語として定着しつつあるよね
大学の情報系限定のお話だけど。
http://www.shiro.dreamhost.com/scheme/trans/icad-j.html
Lispのユニークさ

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

…というあたりも、>>145の状況をよく表している様な.....
結局、関数型というのはパラダイム(考え方、捉え方)ということか。

そのうち誰かがC言語でも関数型プログラミングは出来る。
とか言ってくれないかな?オブジェクト指向の時のように・・・・
C=プロレス=最強
190 :03/02/28 10:08
191デフォルトの名無しさん:03/02/28 12:54
>>188
Schemeをやって、Cに戻ったら以前よりうまくプログラムを書ける
ようになったって話もあるようだよ。
>>188
できるよ。
効率性も含めて犠牲になる部分が多いが。
で、関数型言語って何ですか?
>>193
君と僕にはそれはCだったということさ
要するに、関数型言語って覚える必要の無い単語なのですか?
>>195 知ってても得になるとは限らないが、知らないのは論外、てな知識と思われ
必要って、何の必要性だよ
事業目的に使えるかどうかならば、F#でも勉強しとけ
嬰ファがどうかしましたか?
つべこべ言わずにLispやっとけ。
おまいらに関数型言語は無用だ。
関数型言語は無用
関数型言語は無用
関数型言語は無用
関数型言語は無用
嵐は無用。
202デフォルトの名無しさん:03/02/28 19:05
川端康成の作品を読んだことがなくとも、日常の読み書きには困らないだろうと思う。
でも、日本語が読めるなら一度は読んでおいて損はないだろう。表現が豊かになる。
関数型言語も。いろいろとチャレンジしてみるのは良いことだと思うよ。
203デフォルトの名無しさん:03/02/28 19:31
Cの変わりになり得る関数型言語ってあるの?
当然インラインアセンブラとかもOKで。C++っていうのは
なしね。
204デフォルトの名無しさん:03/02/28 19:32
インラインアセンブラだとちょっと違うか。
関数型言語なりのそれに代わりうるものがあれば
なにもいらないんだけど<インラインアセンブラ。
>>203 観点が違うと思われ。もし無理にでもってんなら、caml の カテゴリカル・アブストラクト・マシーンとか
206デフォルトの名無しさん:03/02/28 19:37
>>205
前にちらっとみただけなんだけど、あるWebサイトに
MLでOSとそれに最適化されたツール群を作るって言う
研究が乗ってた。どうも見た感じだとコンパイラの
製作(そのために言語の拡張をしてたのかどうかは分からない)
で撃沈してた模様。UNIX/Cに変わりうるようなパラダイムが
関数型言語の方面から出てくるのかなあなんて思ったりも
してたけど、実際は難しいみたいね。
>>203
分かってにゃい証拠ハッケツ
>>203
20年前にタイム・スリップして、TI Schemeマシンとか、Lispマシンを買ってきて貰いたまえ
>>206
BSD UNIXって、Lisp研究用のブートローダだったと暴言する人も居たとか居ないとか・・・
210デフォルトの名無しさん:03/02/28 20:00
>>205
categorical abstract machineですか。
なにやらえらい難しそうですねえ。
いつも思うんだけど、citeseerなんかを眺めていると、
実装レベルとは関係無しに理論的にはどんどん進んで
いるんだなあと実感します。頭のいい人は凄いね、ホント。

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

>>208
Lispマシンというのは実はUNIXよりもあまりにも技術的に進んで
いたがために、廃れてしまったのですかねえ。よく知らないですが。
まあUNIXならどんなヘタレでも使えるからね。こういうのも悪くないね。
>>209
WindowsやOSXにしても、OSの枠組みとしては
UIの話を抜けば、4.2BSDからは何も進歩してないように見えるね。
そもそも進歩する素地があったとしても金にならなそう。。。

食えない分野の代名詞として理論物理というのがよく言われるけど
もしかして計算機科学の人もそうなんでしょうか?理論に裏打ちされた
技術って誰も興味なさそうですよね。。。
>>210
>まあUNIXならどんなヘタレでも使えるからね。
Java と Lisp みたいなもんかも?
>>211
でもないよ.最近,形式的表明をなんとかして
ソフトウェア工学に応用しようと頑張ってる.

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

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

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

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

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

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

>>209
BSD のカーネルイメージのファイル名が vmunix なのは
VM が実装されたためで,なんで実装したかっていうと,
メモリ空間食いまくりの Lisp を動かすためだった,とか
いう伝説があったりとかね.
214hosyu:03/03/02 19:16
なんかの宗教みたいだな
λ教?
・・・って昔どこかで聞いたような・・・。
ぐぐったら見つかったのはコレ↓だった。
ttp://www.namazu.org/~satoru/programming/sicp.html
>>214
もはやラムダは円マークだろ
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
宗教法人作ろうぜ!
ジェダイ騎士団みたいな奴か?
222デフォルトの名無しさん:03/03/04 12:53
>>214
λティディ・ベアはSUNのティディ・ベアと互換性があるのか?
λTシャツを着ると、アポー信者や2ちゃねらーと、勘違いされるのではないか?

よく検討してから、購入させて頂きます。
特攻野郎λチーム



MITで鳴らした俺達特攻部隊は………ダメだ思いつかないや.
comp.lang.functionalのウォッチスレはここですか?
どこにそんな話題が?
hosy
228C maga:03/03/18 00:33
unlambda
229デフォルトの名無しさん:03/03/24 20:41
Part2スレの141に
>俺は、数式処理系(Macsyma〜Mathematica) と 命題処理系(ML?)に
>類似性を感じて、興味を持っていたので、乱入大歓迎。

という意見があったけど、実際の所どうよ?
雰囲気は確かに似ている様な気がせんでもないが
C MagazineのC言語の連載にCは関数型言語であると書いてたんですけど
ほんとですか?ならボクにもやれそう....
>>229
どうよ、と言われてもなー。
どっちも派生元である原始言語はLISPなんだよね。
類似性ってのはそういう事かと。
>>230
違うってばよ。
Cマガの記事はたまに素人が書いてるので鵜呑みにできない。
「関数型言語*風*にも書ける」と書いてあるなら、あながち
間違いとは言えないけど、正解では絶対にない。
点数付けるなら、100点満点中25点ぐらい。

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

C言語と、関数型言語として洗練された構文と意味論を持つ
専用言語では、記述の幅からして比較にならない。
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に勝てる処理系はないみたいですが、
関数型言語の共通コンパイラバックエンドを作ろうというプロジェクトなどが
計画されたことなどあるんでしょうか?聞いたことないですが。
gccは中間コードにlispを採用しています。
lispだと最適化がやりやすいため。
236アシュル ◆adhRKFl5jU :03/03/25 00:59
LISPはS式を使っているが、S式はLISPとは限らないべ
> コンパイラの最適化に関してはまだまだgccに勝てる処理系はないみたいですが、
....
>>237
ACL以外で、まともな最適化まで考えられてる
処理系とかあるの?
lispはdynamic typing・・・
>>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
なにこれ?
GCC では ML や Haskell を扱ってくれないから、自分たちで作っちゃおう
ってゆー噺だと思われ
そういや、HaskellコンパイラのGHCは中に丸々GCC抱え込んでたけど、
あれは、GCCの公式配布パッケージの中に取り込んでもらえないのかな?
>>244
若干意味不明
gccに含まれるのかどうかというのは何がポイントと
なるんでしょうか?バックエンドとしてgccを使うのは
なにもHaskell4.0Xだけではなかったように覚えてますが。
s/Haskell4.0X/ghc-4.0X/
O'Caml 入れた。感動した。ところでこれって読みはオキャムルで良いの?
ラクダの絵が描いてあるから「お、キャメル」でわ
漏れは、オッカムとかけてるのかと思ったが、違うか。
>>250
漏れもそうだと思ってたけど、
例の剃刀との関連が今一というか。
>>248-251
スレ違いと思うのは漏れだけ?

関数型プログラミング言語ML
1:デフォルトの名無しさん :02/01/31 11:43
  関数型言語ML(SML/Caml/Ocamlなど)についてのスレッドです。
             ̄ ̄ ̄ ̄ ̄
http://pc2.2ch.net/test/read.cgi/tech/1012445015/
スレ違いと言うか、より適切なスレがあるという感じだわな。
ここは関数型言語一般についてのスレです。
>>252
そのスレは以前↓の質問があったのですがシカトされたという経緯がありますた

720 :デフォルトの名無しさん :03/01/10 01:54
   OcamlとOccamは違うのですか?
↓のサイトが、関数型プログラミング他について濃い話をしていて、なかなか興味深かった。
ttp://www.ops.dti.ne.jp/~cake-smd/hw/FrontPage.html
257248:03/04/08 22:37
スレ違いすんません。読み方に定説が無いようなので岡村君と呼ぶ事にします。
ところで O'Caml には lambda という名前のオペレータは無いんですね。
新鮮ですた。It's FUNny, isn't it?
>>258
.fr ドメインの理由で www.ocaml.org があったのか。(w
260デフォルトの名無しさん:03/04/11 20:22
関数型言語で、window処理のプログラミングをする事って
できるんでしょうか?
イベントをストリーム化するとかの理屈はなんとなくわかるんですが、
例えば現在のマウスカーソルを取得して何かしたりするクリティカルな
場合は、ストリームから取ってこれないですよね?
Concurrent Cleanのデモアプリ
ttp://www.cs.kun.nl/~clean/About_Clean/Platform_Games/platform_games.htm

アクションゲームが書けるようだが。
262デフォルトの名無しさん:03/04/12 12:45
そんなリンク張られても・・・
>>76
そんなことしてる処理系は何がありますか?
もしくは、どうやって調べられる?
Lisp も含めて、関数型言語系スレが廃れてしまって寂しい限りじゃ。
haskellスレの人たちも、
代数の勉強にいったまま帰って来てない
みたいですよね。。。
最近、ちょっぴりモナドが分かってきたような気がする……。
ttp://www.bagley.org/~doug/shootout/craps.shtml

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

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

色んな言語(関数型多し)のコードを見られるのは面白いと思います。
別の意味でも笑えます("Hello there sailor" とかね)。
>>268 直リンクとリファラと ime.nu
270山崎渉:03/04/17 15:30
(^^)
271デフォルトの名無しさん:03/04/21 21:39
もちょっと賑やかでもいいと思うが
(^^)が賑やかになるのは勘弁して欲しい
273デフォルトの名無しさん:03/04/25 07:52
age
MLスレ, Haskellスレ, LISP/Schemeスレ,,, スレ分散しすぎなんちゃう?
でも、なんで concurrent cleanスレないんやろ?
ここでやればいいんじゃないの?
HaskellスレもMLスレも
ここからわかれたようなもんだし
量的には分かれていて正解
>>275
ここでやると埋もれてくから、スレ立てした方がいいよ。
寂れるの覚悟で。
nani wo ?
>でも、なんで concurrent cleanスレないんやろ?
立てろ
Haskellと兼用でいいんじゃないの?
いいの?
というか、なんでそんなにスレ立て避けるの?
Javaとかクソスレバンバン立ってるじゃん。
スレ立つ→すぐ消える、じゃ情報が蓄積されない。
ただそれだけ

新スレ立てたらここにリンク貼ってねー
Java to hikaku suru noha nanikaga chigau
"nanikaga" tte nani Yo ?
tatoeba ??
koko ha fpl no sure
Java ha fpl ni arazu
omaera hiragana tsukatte kudasai.

Java as a Functional Programming Language
ttp://www-compsci.swan.ac.uk/~csetzer/articles/javafunctional.pdf
>>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
291anonymous@default:03/05/14 12:21
kokoha ascii only desuka ?
kansuugata gengo ha ascii moji ni sika taiou sitemasen
gauche
294デフォルトの名無しさん:03/05/16 22:06
Pythonの場合、「関数は、ファーストクラス・オブジェクトである」ので
rubyやperlと異なり、なんとか関数型プログラミングできる。っていうこと
でいいんでしょうか?

http://www-6.ibm.com/jp/developerworks/linux/010615/j_l-prog.html
>>294
いいんじゃないですか。
でも正格言語では、末尾呼び出しのLOOP展開ができないと
本格的には使えないけど。

Rubyで関数プログラミング
http://sky.zero.ad.jp/~zaa54437/programming/ruby/
>>295
PerlもRubyも関数オブジェクトを生成できるけど、何が違う?
そういえば最近のPyhonはレキシカルクロージャ作れるようになったんだっけ?

ところで関数がファーストクラス・オブジェクトで、末尾呼び出しの最適化が
行われるPostScript言語も関数プログラミングできまつか?
>>296
ものすごく読みにくいね。
背景とか行間とか。
ありゃたぶんマッカーでしょう。
>>298
Squeaker かも。背景とか。
>>298
スタイルシートOffにすれば、まぁよめる。
用語集の辺り、良くまとめたよね。
>>300
Cleaner というべきかも!

純粋関数型言語 Concurrent Clean
http://sky.zero.ad.jp/~zaa54437/programming/clean/
304デフォルトの名無しさん:03/05/28 06:57
形無しラムダ計算で
字面を見て再帰だって簡単に判断する方法ってないの?
簡約すると元に戻る奴が再帰だよね?
305bloom:03/05/28 07:13
306名無し@沢村:03/05/28 07:29
おまいらよ、関数型言語なんてしょせん古典言語だよ。時代遅れの遺物だよ。ザコだよ。
おまいら、これからの言語はおまいらよ、これからの言語は量子言語しかないよ。
ふつーの言語では演算によって結果を求めるが、量子言語ではすべての結果は重ねあわせの状態でそでに存在しているから、その中から求める結果を選ぶだけよ。
求める結果は重ねあわせの係数で決まるのよ。
このあたりが古典言語と大きく文法が異なるところだな。
おまいらよ、人類の歴史は量子以前と以後とで2つにわかれるんだよ。
つまり、おまいらのは古典だな。
308山崎渉:03/05/28 12:29
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>306
こんなところにこなくてよい
310デフォルトの名無しさん:03/05/28 17:49
ConcurrentCleanわかるやついる?
Haskellスレか>>303のリンク先に訊くよろし
さもなくばcleanスレ立てる
312デフォルトの名無しさん:03/06/01 14:39
>>304
それは正規形を持たないという。
再帰は不動点演算子を使っているものをいう。

で、正規形を持つかどうかは判断できません。
うーむそうかアンガト
英語の論文読んでも
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
間違ったこと言っていたらスマソ。
誰に対して答えているのかね?
虚無に対して
脳内掲示板に対する回答かね?
新しい文法スレなんつーのがあったのね
新次元新発想!新しい文法を作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1047970129/
600 あたりから関数型の話題になってますた
>>318

結局、継続は関数型言語の純粋さを破壊する非関数型な機能のようですね。
325753:03/06/07 01:13
>>324
ハァ?
そんなことを書いた覚えは無いが。
覚えが無くてもそれはそういうことなんですよ。

あと、合流性の定義は調べたほうがいいですね。
評価順を決めれば結果がひとつになるというのは
合流性が成り立ったことにはならないので。
327753:03/06/07 02:32
>>326
合流性の定義をそう解釈した覚えはない。
君が誤解している。
delayを使えば、「評価順を変える」などという
ことがそもそも出来なくなるので
戦略を選ぶ余地は無くなる。

それから、継承を使っただけでは合流性は損なわれない。
328753:03/06/07 02:34
例えば、Haskellにも絶対に変えられない評価順は存在する。
全てが全て、ラムダ計算のβ-簡約のように、評価順が
全く自由というわけではない。
329753:03/06/07 02:41
例えば君の出した例でわかりやすく解説すると、

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

ならば、合流性は損なわれない。
全部k 1でそろえてるからだ。
これと同じ規則にしろとはいわないが、継続を使ったということが
イコール合流性が損なわれるということにはならない。
ついでにいうと、δ項の機能を備えたラムダ計算
にも絶対に変えられない順序は存在する。
引数を計算しておかないとδ-リダクションは行えないからな。
>>328

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

合流性というのが、TRS の用語だということを知っていますか?
そうそう、ご存知無いかもしれませんが、TRS というのは
Term Rewriting System の略で、項書き換え系というものです。
項書き換え系とラムダ計算の関係がよく分からない。
どっちがより基本的な概念なのだろう。
λ計算などにみられる簡約を抽象したのがTRS
>>332
ラムダ計算において使用不可能な概念ではないでしょう
337デフォルトの名無しさん:03/06/07 19:15
どなたか、コンビネータについて教えてください。
あとスーパーコンビネータも。
338預言者:03/06/07 20:01
>>336

そうですね。

それはそれとして、合流性じゃなくてチャーチ・ロッサー性と書いておけば
誤解を招かなかったかも、と後悔していたりします。
340753:03/06/08 02:07
>>339
最初からチャーチ・ロッサー性のつもりなんだけど。
誤解してるのはあなただね。
一体俺の発言の何を誤解してるんだろう。
341753: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
関数型言語の一番の売りは
副作用のない関数を簡単に定義できる事ですか?
>>342
確かに説明が稚拙なのが問題なときもあるが、説明を理解できないのが問題なときもあるのだよ。
>>340

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

まぁ、∀と∃の違いがわかってないということか。
>>342
横から口出し失礼。
相手の立場にたって説明することの重要性については大賛成だ。
だけど、チャーチロッサー性≡合流性を知らないとは普通考えない、と思う。
説明が重要なのはもっともなので、もう少し詳しく説明しよう。

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

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

Scheme の継続を使うとチャーチ・ロッサー性が満たされなくなるということは
この継続は関数型言語の純粋さを傷つける機能というわけで、
継続という機能は関数型ではない、ということなのです。
>>347
>>753もそれは分かってると思うよ。
合流性を損なわない範囲で継続の概念を定義できる、ということだろう。

では、継続の本質とは何か? という方向に行けば議論がかみあうのでは
ないかな。
本当に君らはくだらないな。
350753:03/06/08 16:24
>>345
いや、俺はそれはわかってるが・・・

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

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

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

では、具体的には、どういう文法にするのですか?
文法というか、意味解析じゃないのかな
文法を変える必要はない気がするけど
353753: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の範疇で考えるのは限界がある気がする。
>>353

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

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

ということは、たとえば大域脱出に使おうと思っても、
脱出するときの値とそうでないときの値を自由に変えられないわけです。
なんか、考えれば考えるほど、役に立つ形で継続プリミティブを導入するのは
不可能ではないかという印象を強く感じています。
356753:03/06/10 18:25
少なくとも俺は具体例をはじめから一つ提示しているので、その俺に
対して「具体的にどうしたら良いのですか?」と聞く必要性を感じない。
少なくとも351の時点では、俺が提示した具体例を、あなたが完全に否定
出来ていない以上、これ以上の説得力をもたせる必要性も感じない。

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

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

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

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

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

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

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

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

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

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

いずれにせよ、純粋関数型言語に役に立つ形で継続プリミティブを入れるのが
困難なのはたしかそうですね。
359753:03/06/12 03:54
>あぁ、もしかして、
>(call/cc (lambda (k) (cons (k 1) (k 1))))
>という項のみが許される文法ということですか?

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

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

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

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

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

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

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

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

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

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

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

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

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

if and only if, i.e. necessary and sufficient.
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
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圏を完全に無視してるよね
気に食わん
>370
¥だったらいいのか?
\ かも
>372
↓こんな感じか?


/\
Smalltalkみたいに、外字つーか、絵文字を導入すれば?
>>374
それは72の頃の話じゃないのか? 今でもできるの?
何でCleanのスレはないの?

>>376
既出 >>274
Cleanは一意型付けすることで、モナド使わなくていいの?
380デフォルトの名無しさん:03/09/21 11:42

保守
Cleanの質問していいですか?
サンプルが難しすぎてわけわかです。
とりあえず、数値を入力したら計算結果を出すとか、単純なものを作ってみたいのですが
標準入出力を使う関数のリファレンスなどはどこにあるのでしょう?
>>382

とりあえずここの日本語訳を読んでみたらサンプル難しい!を乗り越えられるかも。
ここを既に見ててわからんなのだとちとお手上げ

ttp://sky.zero.ad.jp/~zaa54437/programming/clean/
384382:03/09/27 08:27
>>383
ありがとうございます。

…既に見てたりして
ほぉιゅ
Clean2.1そろそろってアナウンスが出てきましたね。
ちょっと楽しみ。
387デフォルトの名無しさん:03/10/06 01:26
「関数型がいい!」っていう主張をかなり聞きました。でも本当のところ
はどうなんでしょうか。
Pythonなんかだと、ZopeというWebアプリケーションサーバーがあります。
関数型が本気になったら、Zopeなんてすぐできるとか、こんなにアドバ
ンテージがある、なんてこと考えられますか?
>>386
保守や引継ぎが楽になるんじゃね?普及すれば。
Zopeなんて直ぐできるだろうね。書く人がいればだけどね。
速度はめちゃ速で、pythonなんかと比較すんのもおこがましいだろうよ。
後々Cなんかで拡張部書く必要ないし。
ところでおまえ、Clean理解できる?
おれ無理。
389デフォルトの名無しさん:03/10/06 08:39
>>388
俺も無理です。
プログラミング環境をダウンロードしていじってみたことありです。
作成したプログラムはGUIきれいだった。
関数型、GUIよし、マルチプラットフォーム。伸びてほしいですね。

でも商用で金がかかる(?)当時のサイトでは料金体系があいまい(?)
「作者にメールして聞いてね」って感じじゃなかったかな。今も?

関数型は言語の素養よりも、キラーアプリだと思う。
関数型のWEBアプリサーバーで良さが広まればと思いますが、どう
でしょう。
Zopeがあまりにも良いもんで(^^;

関数型でもきれいなGUIのソフトってあるんだ
GUIというか、実用ソフトには無縁なイメージがあるんだよなー
見てみたいんで教えてくらはい
391デフォルトの名無しさん:03/10/07 19:32
>>390
この絵は大したことないですね。IDEのサンプルはもっと良かったです。

ttp://www.cs.kun.nl/~clean/About_Clean/Standard_I_O_Lib/standard_i_o_lib.html
392デフォルトの名無しさん:03/10/23 17:43
comp.lang.functionalを見てても定期的にOOPL vs FPLってのが
あるんですが、それに対する公式の文書みたいなものはないんですか?
無い。
公式の文書ってなんだ?

ところで、関数型スタイルと OO スタイルをうまく共存させてプログラミング
するコツってある? 当方、主に Common Lisp なんだが CLOS とか使うとどう
しても副作用出ちゃうし。
インタフェースがOOちっくで、メソッド内はFuntionalとかいうのを
組んだことがあったがえらく不評だった。C++だが。
どんなのよ?
>>394
>公式の文書ってなんだ?
ニュースグループ内のFAQみたいなのです。
>>387, >>390
(0) Lisp で書かれたサーバが他サーバからの幾多の挑戦を悉く打ち負かした理由
「普通のやつらの上を行け!(和訳)」
ttp://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
(1) Oracle の 10〜100 倍速い関数型 DB 指向言語 K(Wall 街御用達) www.kx.com
(2) CUI/GUI な IDE が自己記述でカナダの数学授業に採用の J(M$やN興證券御用達)
www.jsoftware.com

「Oracle の 10〜100 倍速い」ってのは Extreme Programming(XP) in APL のページ
ttp://aplxp.blogspot.com/
に書いてあった紹介文なのですが, この「XP(和称ペケぴー?)」や
「agile pg」「富豪的 pg(日本発なの?)」といった最近台頭して来ている
プログラミングパラダイムは関数型言語ととっても相性が良いような気が
するのですがどうでしょうか。(λ(←自主規制)計画の250億円がこう言った
方面に注ぎ込まれていたら……。)

(9) おまけ ttp://store.yahoo.com/paulgraham/fix.html
関数型言語は地球を救う
手続き型言語に魂を引かれた者たちは? 殲滅されるのか?
401デフォルトの名無しさん:03/11/03 16:11
Clean 2.1! age
402デフォルトの名無しさん:03/11/03 16:17
●●●2004年も被害者がでるのだろうか?●●●
http://sports2.2ch.net/test/read.cgi/kouhaku/1057943092/-100
行政機関、日本の全マスコミ、教育機関などによる、
個人に対する住居不法侵入からの盗聴、盗撮、24時間監視、
ストーカーで収集した個人情報を、
テレビ、新聞、出版物などで嫌がらせをしながら悪用している事実について、
>>1>>394までにまとめました。

2chのマスコミ板 http://society.2ch.net/mass/
●●●マスコミの盗聴、盗撮は許されるのか?●●●
で被害者の訴え、マスコミの隠蔽が、30スレまで続いています。
より多くの人に事実を知って貰うことが、
組織的、計画的な犯罪の刑事責任、民事責任を追及することにつながると考えています。
Cはバッドノウハウの塊みたいなもんだよ。
Objective Caml か haskell のどちらかをさわって見ようと思うのですが、
この2つでもっとも大きな違いは何ですか?
>>401
さっそくLinuxの方面だとバグ発見されちゃいましたね。WinとMacの方は直ってるけど、Un*xの方の直し忘れたから次ので直すよ〜って(汗
お茶目だ(w
Cleanみたいな純粋な関数型言語で書かれても
ロジック的なバグは減らないのか
Clean「で」書いたブツのバグじゃなくてClean「を」書いた時のバグでないの?
>>405
OCamlは正格
haskell は非正格でlazy
関係ない話だけど,正格であること(f(bottom) = bottom)は非常に
いい性質のようにみえるのに,正格でないほうがかえって
理論的にきれいになる(不動点演算子の定義とか)のはなぜだろう?
>>408
まぁ、Clean自体Cleanで書かれてるんだからそういう言い方もありなのかもしれん。
Clean使える人います?
あれって前提とする知識量が多すぎな気がするんだけど、
例えばML使える人が移行できる様なもの?
413 :03/11/07 10:56
タイプミスだろ。
CleanのMLで面白い物みつけた。(既出だったらすまん)
統合開発環境つきの言語でQっていうらしい(環境のほうはqpad)

↓ここから落とせる。
http://www.musikwissenschaft.uni-mainz.de/~ag/q.
紹介をよむと項書き換えシステムをつかったマルチプラットホームな
スクリプト言語らしい。
統合開発環境がつかいやすいので、初めての関数型言語にはいいかも。

でこれが製作者の顔
http://www.musikwissenschaft.uni-mainz.de/~ag/ag.gif
415414:03/11/13 23:41
416 :03/11/14 13:35
俺は知ってたが、使ったことはない。
つか、詳しく見たことない。
勉強・アルゴリズムの確認用には使えるかもな。
417デフォルトの名無しさん:03/11/22 14:17
lambda=無名関数
と考えることは間違ってますか?
またどういったケースでどういう不都合がありますか?
別に間違ってないよ。
無名だから自分自身を直接呼び出せないって制限があるだけ。
あとは埋めこみ構文ということで、スコープが書く場所によって違う。
>>418
>無名だから自分自身を直接呼び出せないって制限があるだけ。
ああ、これは言われて気がついたのですが、なるほどですね。
Perlなら関数リファレンスを引数に取る無名関数を定義、かつ
それのリファレンスをどこかの変数に入れて、
無名関数を評価するときにおいて自身のリファレンスを無名関数に
渡すことも可能か?!無名関数のリファレンスを取ること自体が
いけないのかもしれないですね。。。

>あとは埋めこみ構文ということで、スコープが書く場所によって違う。
これはそうですね。関数内において、値を計算することと関数を定義する
ことが式という枠組みで見れば等価っていう感じでしょうか。違うかな(汗

関数の実引数としてlambdaを定義。関数の戻り値としてlambdaを定義。
なんとなくですが、
http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E7%AE%97%E6%B3%95
ここで言われている、ラムダ算法なるものの概要が分った気がしました。。。
>基本的にラムダ計算では関数抽象 (プログラムの定義) と
>関数適用 (プログラムの実行) の 2つの操作しかない。

Perlでクロージャの有効な使い方を学ぼうと思っていいろいろ調べていたら、
やっぱりラムダやLISPのプログラミングテクニックについてちゃんと
理解してナイトダメみたいですね。難しい、鬱だ
>>419
>無名関数のリファレンスを取ること自体がいけないのかもしれないですね

いや、自身の参照を扱う事自体は特別なことじゃないよ。
(再帰関数と同じ扱い。)
ただし、再帰の終点をちゃんと決めておかないと終了しないコードになる。


・自分自身を引数に渡して呼び出す方法

(let ((tmp #f))
 (set! tmp (lambda (self) (self self)))
 (tmp tmp))

・letの変数経由で自己参照する方法

(let ((self #f))
 (set! self (lambda () (self)))
 (self))

これを構文糖衣にしたのがletrec

(letref ((self (lambda () (self))))
 (self))

letrefじゃなくてletrec
>>420-421
ありがとうございます。
LISPでは"self"というキーワードで、現在の評価中関数の
参照が取得できるんですね。なるほど。

ネットでラムダに関して何か良いドキュメントはないかと探していたら
http://members.at.infoseek.co.jp/nbz/ref/lambda.html
こんなものがありました。
α変換、β変換について書かれているところで、自由変数(free variable),
束縛変数(bounded variable)という分らないキーワードが出てきたので
http://www.graco.c.u-tokyo.ac.jp/~kashiwa/sysI/2001/pred/node4.html
このドキュメントを読んでいまいた。

Cでいうところのローカル変数が束縛変数。関数の仮引数が
自由変数という解釈でいいのでしょうか?それともこういった
現実のプログラミング言語に置き換えるのは間違いでしょうかね、、
おっと、selfはキーワードじゃなくて、ただの変数名。
letやletrecはその変数を作る構文。
>>420はletで作成した変数tmpやselfを無名関数で初期化しているだけ。
LISPスレ行くか適当な入門書読んだ方がいいんじゃないかと。
>>423>>422に対してね。
>>423
あらら、これはまたすみません。
やっぱりラムダ算法の本とLISPのプログラミングの本を容易しないと
話しにならないっぽいですね。ネットの断片的な情報だけでは辛ひ…
良く考えたらスレ違いなので、これ以上はここではやめておきます。
どもでした。
ちなみに補足すると、letもlambdaの構文糖衣として表現できるので、
>>420の式はそれぞれ

;; expand (let ((tmp #f)) (set! tmp (lambda (self) (self self))) (tmp tmp))
((lambda (tmp)
 (set! tmp (lambda (self) (self self)))
 (tmp tmp)) #f)

;; expand (let ((self #f)) (set! self (lambda () (self))) (self))
((lambda (self)
 (set! self (lambda () (self)))
 (self)) #f)

;; expand (letrec ((self (lambda () (self)))) (self))
((lambda (self)
 (set! self (lambda () (self)))
 (self)) #f)

と展開して、lambda(とset!)だけで表現できる。
(ただしこの展開方法が唯一というわけではない)
こんなこと最初は知る必要ないんだけど、ほとんどの構文が
より基本的な構文への構文糖衣(syntax-sugar)だと知ると
きっと面白くなるよって話。
そろそろスレ違いぎみか。
>>426
ありがとうございます。
ラムダというのはすごいですね。計算というものを変換規則で
言い表してしまうなんて。いままでプログラムの実行(つまり
私にとってのプログラムの意味)とは、VisualStudioなどの
IDEでのステップ実行のような、シーケンスが流れていく有様を
イメージしていたのですが、こんな風にも表現できるというのは
びっくりしました。
>letもlambdaの構文糖衣として表現できるので
構文糖こそラムダで表現できるんですね。となるとラムダでは
表現できない構文要素とはなんでしょうか。これから勉強しなくては
いけないですね。今さっき「計算機プログラムの構造と解釈」という本を
ラオックスで買って来ました。スレ汚しすんません。
428デフォルトの名無しさん:03/12/01 20:38
>>342
先生ここに居られたんですかぁ。関数型言語の板に確か
ご在籍と記憶しておりまして、LispSchemeや
MLと関数型言語板を渡り歩いてしまいました。
(ML板では追剥ぎ?のような連中にとっつかまり
すっかり難渋いたしましたが…藁藁)
先生のご高説には常に感じ入って拝聴させて
頂いております。そこで関数型言語について
一つ質問させて下さりませ。
「かの言語は教育用や学究的な目的で使用されることは
ありますが、何故一般に普及しないのでありましょうか?」
(REXXやERLANGなど企業内言語として、少しはありますが)
Cleanの型一意付けについて知りたいんですが。
グラフ理論や項書き換えシステムについて勉強しなきゃいけないんでしょうか?
その場合推薦図書とかあります?
MLスレでやりこめられる

スレと全然関係無い計算機科学系の話題をいきなりふる
(しかも学部レベルの話)

みんなが呆れていると、「こんなことも知らないの?
君達にはもう付き合えないよ」などと見当違いの感想

MLとの関連性や、ちょっと突っ込んだ内容について
質問されるともう答えられない
・googleで検索して名前の出てきた人が自分に質問していると思い込む
・2ch管理人のひろゆき氏がMLスレに参加してると思い込み、中央大
(氏の出身大)を馬鹿にする
>>430 スルーしろ。同じことの繰り返しがしたいのか?
432デフォルトの名無しさん:03/12/02 14:48
>>429
今のところ日本語では;
ttp://sky.zero.ad.jp/~zaa54437/programming/clean/
ここしかないようです?
Cleanの1.3.2ですが入れて試してみましたが、
なかなか良さげな感触でした。
433ヒーロー勇気:03/12/02 16:16
>>430
アンタ?ストーカー?
2ちゃん管理人でない限り、ここまで追えないでしょう?
Log見ないでなんで分かるの?
本人ではないかも知れんが、これで少なくとも息の
かかった人間であることが証明された。(藁藁)
えっ?こんなに底レベルの発言するのは、2ちゃん広しと
言えど余輩だけって?(藁藁)
分かりました。もう逃げも隠れもいたしません。
皆さんの絶大なるご期待に応えて「検索」しやすいよう、今後
2ちゃんにおける余輩の全ての発言に「ヒーロー勇気」の
名前を冠することに致します。「たまたま」似た名前の方が
居られたとしても一切無関係であります。(藁)
さらに、名前無断借用!成りすまし!一切フリーですから。
従って「ひろゆき」も今後は「成りすまし」と見なされますので
念の為(ワラワラ)
またここではっきりさせて置きます。
この、支離滅裂、分裂気味の文章(2ちゃんでは普通?)
から賢明なるROMのご推察の通り、余輩は大学セントラルは
おろか一切「大学や大学院教育!」なるものを受けておりません。
キッパリ
(ただ、授業料だけ納め…藁藁)
時代は今や「大学教育」を受けて「ない」こと、これが
ステータス・シンボルであります。浜崎あゆみを見よ!
朝青龍を見よ!大リーグで活躍する松井を見よ!
打倒!Java!C#!C!VB!ついでにRUBY!
本屋に積んである全ての言語教則本を蹴散らしましょう!
関数型言語の本なんて、近所の本屋で見たことがない。
この落ち目でマイナーでショボクレタ関数型言語を
愛するオタク諸兄姉!マンセー!
435ヒーロー勇気:03/12/02 21:48
>>434
>433スレ違いです
430は?(藁藁)
436ヒーロー勇気:03/12/02 21:51
>>434
あのぉ。誠に申し上げにくいのですが、
432も余輩の発言なんですがぁ。(藁藁)
>アンタ?ストーカー?
>2ちゃん管理人でない限り、ここまで追えないでしょう?
>Log見ないでなんで分かるの?

アイタタ…
438ヒーロー勇気:03/12/03 18:32
==> writes "今日は"
今日は()

関数型言語のプロンプト入力とその結果です。
はて、この言語は何かご存知でしょうか?
439デフォルトの名無しさん:03/12/03 18:51
Q
433 名前:ヒーロー勇気 :03/12/02 16:16
>>430
アンタ?ストーカー?
2ちゃん管理人でない限り、ここまで追えないでしょう?
Log見ないでなんで分かるの?
本人ではないかも知れんが、これで少なくとも息の
かかった人間であることが証明された。(藁藁)
なんかここも匂ってきたな...
>>438
言語は存じ上げませんが

"今日は" -- write関数の副作用
"()" -- write関数の返り値 (UNIT)

ですか?

443ヒーロー勇気:03/12/04 14:54
>>439,442
すっご〜い!Qですよ。良くお分かりですね?
http://www.musikwissenschaft.uni-mainz.de/~ag/q/q.php
ここがHPです。
http://www.musikwissenschaft.uni-mainz.de/~ag/ag.html
これがご本人です。
今回はくれぐれも誤解の無いよう、お願い致します。
ワタクシ、ご本人ではありませんので。(藁藁)
だから何
aranskの気持悪い悪あがきは続く…
( ゚д゚)ポカーン
447ヒーロー勇気:03/12/04 21:21
>>444,445,446
本家からLispScheme、Haskell/Clean、ML/OCAMLが
分家独立したら、関数言語板って何が残るの?
今更REXXやERLANGでもあるまいし、Qしかないん
じゃないの?(藁藁)
448ヒーロー勇気:03/12/04 21:25
>投稿者は、投稿された内容は、掲示板運営者によってコピー、保存、
>引用、転載等される場合があることを承諾します。

これってさぁ。改竄、捏造、中傷、罵倒は含んでないよね?(藁藁)
(setq navi2ch-article-message-filter-by-name-alist
'((("山崎\\s *渉" R) . hide)
(("ヒーロー勇気" R) . hide)
((...
いいかげんスレと板の違いくらい理解しろよ>Aransk
数学板の山口人生もそうだけど、キチガイは客観性が欠落してるから
自分のレスが完全に浮いている(2chの細かい流儀を踏まえてない)ことに
全く気が付かないんだよな。
sageない、レス番指定が変、顔文字が変、句読点が変、「(藁)」、、、
>>444
Q を知ってるなんて激しく頭良くて優秀ですね!
漏れを含めた低脳は存在を全く知りませんでした!

…と言って欲しかったのだと思われ。誰もそれを
言ってくれないので >>443 で自画自賛。とりあえず
ほめてエゴが満足したらおとなしくなったりしないかなぁ。
452ヒーロー勇気:03/12/05 17:33
>>449
かの著名な山崎さんと同列でよろしいのでしょうか?(藁)
>>450
余程「ヒーロー勇気」とは呼びにくいらしい?
そりゃあ。ご本家「ひろゆき」の持つ不可侵!の
イメージー>セコイ、小者、卑怯、未練とは
段違いだもんね。(藁藁)
>>451
Q is a modern functional programming language「 based
on term rewriting.」 It is simple, powerful, extensible,
portable, fast and easy to use:

Qの紹介文にある「Rewriting」ってご存知でしょうか?
そのために「敢えて」Qを選んだんですが。(Laugh,Laugh)
>>452
項書換えのためにあえて >>438 ね…いや、突っ込んではいかんのか。
はいはい。激しく深い思慮があったんだろうね。オマエは頭がいいよ。
ほんと感服するわ。いやぁ、項書換えなんて単語すら全く知らなかったなぁ。

あ、「敢えて」の説明はしなくてもいいから。うん、しっかりわかってるよ。
苦し紛れの言い訳じゃないことはひしひしと伝わってきますから。
>>452
あのー、あなたのほうこそ何故堂々とAranskを名乗らないのですか?


ひろゆきに逆恨み粘着か…
行動パターンがますますヤマジンとかぶってきたね
455デフォルトの名無しさん:03/12/06 13:34
>>453
「状況を見て、判断します。常にこの方針に変化は
ありません。」(藁藁)
>>454
何故?堂々と「ヒーロー勇気」と呼べないのでしょうか?
何かやましいことでも?とても気恥かしくて呼べないって?
(大ワラワラ)
456ヒーロー勇気:03/12/06 13:36
Qはご承知のとおりRewriteの言語です。
書かれたプログラムを完全に違ったロジックに書き換えて
バイトコードに変換し効率を高めております。(JVMやCLR?)
従って普通に再帰構造のプログラムを書けば、内部で自動的に
末尾再帰に変換してくれる訳です。
これまでプログラムはマシーンの挙動を制御するものであり
ました。これが徐々に単なるGUIと変わらないインターフェース
化しております。CUIだから当たり前ちゃぁ、その通りですが
少なくとも、GUIよりはマシーン寄りであるとの自負が
砕かれつつある訳です。
そこで関数型言語ご本家の方々にお尋ねします。

上記のようなプログラミング言語の流れの中で、関数型
言語の存在意義は何でしょうか?
ACLを使ってGUIプログラムを作った方いらっしゃるでしょうか?
VBやDelphiから見れば「オモチャ」です。
RubyApoloもついでに言えば「オモチャ」です。
何故?不得意なGUI、DB、OO指向に関数型言語は走るのか?
真摯なご反論をお待ちします。皆さんの高い知的レベルに
勿論、多いに期待をして、「は全くおりません。」(藁藁)
ご自由に普段のスタイルで結構です。
457 :03/12/06 15:16
>VBやDelphiから見れば「オモチャ」です。

VBはその存在自体がオモチャ。

>何故?不得意なGUI、DB、OO指向に関数型言語は走るのか?

多目的言語であることはアドバンテージだから。
と言うか、この中にDBを入れる理由が分からん。
暇なんですか?放置してくださいよ>>457
>>458
ここを隔離スレにするってのはありだとおもうけど。
Aransk(藁藁)
>>456
レスの前半と後半にほとんどつながりがないぞ。
自分のサイトがあるんだからそっちでやれよ。

MLスレじゃ「知識があることは何の意味も持たない」なんて言っておきながら
自分から「これ知ってるか?これ知ってるか?」と脈絡のない質問を連発
ここでも自作自演でQをry
462デフォルトの名無しさん:03/12/06 18:36
Aransk(ゲラゲラ)
463ヒーロー勇気:03/12/08 17:42
>>457
そのオモチャにGUIでは負けているの?
プログラマーの数でも段違いなんだけど?(藁藁)
DB操作はGUI同様にイベント・ハンドリング的でしょう?
関数型言語を多目的言語であるって認識している
のは関数言語が好きな人だけ。(藁藁)
>>461
分かり易いように具体例を添えて聞いてあげたのに…。
じゃあ単刀直入にお尋ねします。
「関数型言語の存在意義は何でしょうか?」
ワタクシ、皆さん方を決して非難しておるので…「あります。」
関数型言語スレなんだから、個別言語が分家独立した後
当然、関数型言語群という一つ上の抽象化された部分で
発言なさるべきではないでしょうか?
ワタクシが言っておるのは、関数型言語の定義…副作用がどう
こうとかの些末な問題、ではありません。
そもそも、関数型言語自体が存在しているんじゃないこと
ぐらいはお分かりですよね?
関数型言語が好きな、また有用と考えるホンの一握りの
関数型言語族がかろうじて生存しておるのでしょう?
バイクが勝手に暴走する訳じゃない。
暴走族が存在するから、暴走するのです。
(もちろんバイク無しで走っちゃ…マラソン族ですが。藁)
我々少数民族である関数型言語族は今後何に活路を見出す
べきなのか?それをお聞きしておる次第です。
464ヒーロー勇気:03/12/08 17:43
>>460,462
ワタクシ、Aransk氏のHPは確かに紹介しました。
はっきり申し上げますが、完全に別人格であります。
彼のHPの関数言語コラムの最後にも、さも
迷惑そうな文章が掲載されております。
絶大なる宣伝効果を発揮した余輩の活動に
感謝の念がまだまだ薄い。彼はフォーラムに
おった時から超ニブなところがあった。
よ〜く他人のハンドル名を間違えておった。
一緒にされては、余輩の方も多いに迷惑です。
またQを宣伝したからと言ってドイツの
ゲーテンベルグ大学とは何の関係もありません。
さらに引用しました、某大の某研、大学セントラル
の文学部とも全く無関係ですから念の為。
イラク情勢板の「川口外相は辞任すべき」スレでも
関数型言語板の宣伝しております。が、ワタクシが
このスレを立ち上げてはおりません。
お分かりでしょうか?(藁藁)
関数プログラミング 情報数学セミナー
萩谷 昌己 (著)

この本を読んだことのある日とはいますか?
どう?
466デフォルトの名無しさん:03/12/09 00:58
>>485
とりあえず「関数プログラミングってなに?」という感じの
人が読むと良いかも。そうでない人にはもの足りん。
>>463
使用人口でVBに負けてる言語なんて、手続き型・OO型問わず腐るほど
ありますが何か?Win上のGUI処理でVBに勝つのは大変ですね。
何でWinのGUIだけを考えてるのかはさっぱりわかりませんが>Aransk

>存在意義
そんなの人それぞれでしょ。「DB手続きが存在するのは
言語の存在意義に反するからおかしい」とか言ってる時点でどうかしてる。
つか不毛。
>>467
>つか不毛。

ここに激しく同意。
469ヒーロー勇気:03/12/09 15:48
ワタクシ、関数プログラミング 情報数学セミナー
萩谷 昌己 (著)も読んだことのない初心者で御座います。
しかしながら、余輩が貴公らに問うておるのは、そのような
教科書的な知識では断じて御座らぬ。
WEB、GUI、RDB、3Dグラフィックなどが全盛時代に
関数型言語の存在意義は何か?
貴公ら自身の思うところを述べよ。
海外の本やHPなどの翻訳及び日本の研究者の
オッカケではなく、貴公ら自身の関数言語に対する
将来展望を熱く語って欲しいとお願いしておる次第です。
己の胸に秘めた若々しい想いを語ることが不毛ならば・…
いったい何に毛が生えるの?(藁藁)
>己の胸に秘めた若々しい想いを語ることが不毛ならば・…
普通に数学の素養のあるひとなら、プログラミング言語ごときに
萌えたりしません。
471 :03/12/09 16:31
>>463
>プログラマーの数でも段違いなんだけど?(藁藁)

人数が多ければ勝ったといえるならば、
東大卒より高卒の方が優れているという議論も成り立つぞ。

>DB操作はGUI同様にイベント・ハンドリング的でしょう?

例えばSQLはお前の中ではどうなってるんだ?

>関数型言語を多目的言語であるって認識している
>のは関数言語が好きな人だけ。(藁藁)

多目的言語であることはアドバンテージだといっただけ。
関数型プログラミングって、パズルを解く様な感じでプログラミングする
っていうイメージがあると思うが、
そもそも、パズルを解くためにコンピュータを使うのに、
そのコンピュータを使うためにパズルを解かなくちゃならない
っていうの、本末転倒だという気がするは漏れだけ?
パズルを分析し、ルールと手続きに還元して、自明な形にまで解体することこそが、パズルプログラミングの醍醐味なのだ。




‥‥とかぶってみるテスト(ぉ
>>472
そのパズルを解くプログラムを書けばいいんじゃない?
>>472の言うことも分らなくもないけど。
関数型言語だと、関数ごとの目的をはっきり意識しながら
プログラミングする必要があるよね。今までこれをしなくても
なんとかコードかけていたのは悪い習慣だから、
治さないといけないって個人的には考えてるけど。
476 :03/12/10 14:13
そんなのはプログラミングという作業一般にいえることだよ。
>>476
でも、副作用のある言語だと割りと目的があいまいな
ままでもOKだったりしません?
478ヒーロー勇気:03/12/10 17:09
>>470
岡潔先生は「数学は感性です。」と仰った。
「萌えない人には数学は向きません」とここまではっきり
仰っておられたかは不明だが…。
>>471
>東大卒より高卒の方が優れているという議論も成り立つぞ。
当たり前です、それが何か?
>例えばSQLはお前の中ではどうなってるんだ?
Structured Query Languageです。
>多目的言語であることはアドバンテージだといっただけ。
多目的言語であるというのは単なる「思いこみ」
だと言いたいだけ。(まとめて、藁藁)
>>472,473,474
鋭い!詰め将棋や詰め碁の好きな人は概ね関数型言語を
好む。
>>475,476,477
嘘ついちゃいけません!
>関数型言語だと、関数ごとの目的をはっきり意識しながら
>プログラミングする必要があるよね。今までこれをしなくても
>なんとかコードかけていた
関数の目的無しに「どんな」言語でもプログラムが書ける訳が無い。
そのコードをここに示しなさい。
どうやら一行もコードを書いたことも無い連中が紛れこんで
いるようだが?文学部卒のお仲間か?(藁藁)

MLスレなんかと比較すると、著しく反応レベルが低いような
気がする。アンタ達は単なるお囃子社中じゃないだろうね?
479デフォルトの名無しさん:03/12/10 17:21
アランスク、がんばれー
…の第一の特徴は偏執狂の傾向である。偏執狂とは「慢性の、組織化された、
だんだんに肥大する妄想を特徴とする精神状態で、幻覚を伴わず、また悪化
あるいは回復の傾向がほとんどないもの」である。奇人が掲示板の人々
すべてを向こうに回して孤独な、きびしい敵対状態に立つときには、必ずや
自分は偉大だという強い意識がバックにあるにちがいないことは容易に理解
される。
             - 民明書房刊「奇妙な 2ch」より抜粋
481デフォルトの名無しさん:03/12/10 19:19
アランスコマンセー
MLスレのときみたいな惨状を繰り返したくないから
努めて放置してるだけだっつーのに。
MLスレとここの住人がかぶってることすら思い至らずに
「管理人にストーカーされてる!」とか言ってるし


   本当に客観性の無い人ですね。
>>478
> 多目的言語であるというのは単なる「思いこみ」
> だと言いたいだけ。(まとめて、藁藁)

主張は分かったのでそろそろ死んで下さい。
>>478
あなたCもまともに書けないじゃん。
485ヒーロー勇気:03/12/11 15:30
>>479,481,483
絶大なる応援アリガトーって、選挙はもう終わった?(藁)
>>484
Cじゃ貴方が分からんでしょう?
で、これならとばかりにコードを見せつける。(藁藁)
module AStack( Stack, push, pop, top, size ) where
data Stack a = Empty
| MkStack a (Stack a)
push :: a -> Stack a -> Stack a
push x s = MkStack x s
size :: Stack a -> Integer
size s = length (stkToLst s) where
stkToLst Empty = []
stktoLst (MkStack x s) = x:xs where xs = stkToLst s
pop :: Stack a -> (a, Stack a)
pop (MkStack x s) = (x, case s of r -> i r where i x = x)
top :: Stack a -> a
top (MkStack x s) = x
486ヒーロー勇気:03/12/11 15:34
>>480,482
皆さんの「ために」本日、かなり大きな本屋に「わざわざ」行きました。
そこはコンピューター関係の書籍が高さ2m巾7mの棚5列に
びっしりです。はて?何に関する書籍一番多いでしょう?
年賀状の画材集です。(藁)これはこの季節やむ得ぬことです。
次は圧倒的にエクセル、ワードなどのMS関連、次はHP作成用の
本です。言語関係はこれもJavaが圧倒です。次はVB,C,VC++です。
HTML、XML、PHP、Ruby、Delphi、Perl、PythonなんとSqueakまで
あった!しかしながら我が関数型言語は皆無です。一冊もありません。
武市先生の計算機科学入門にかろうじて、わずか数行紹介されて
おりました。この現実を皆さんは直視していない。
膨大な書籍の山にほんの数行しか、関数型言語が無い。
この事実をどう認識するのか?危機感は無いのか?
すくなくとも日本におけるコンピューター界においては
皆さんがマイノリティーなのです。「基地外」集団であります。
白い服は着てないかもしれないが、今時それも2ちゃんの
関数型言語スレにカキコしているなんて、GFに告白してご覧、
超ヤパ〜!一発で振られますよ。アダルトやコミケの方がはるかに
無難であります。まだGFは関心を示すでしょう。(藁藁)
まず率直に自からの置かれている立場を認識することが
大切なのではないでしょうか?
487デフォルトの名無しさん:03/12/11 15:38
アランスク様、このスレだけを見ていて。お願い♥
488デフォルトの名無しさん:03/12/11 15:39
浮気はいやですぅ
           ウゼえ消えろ
      ∧_∧          _ _     .'  , .. .∧_∧
     ( ´_ゝ`)   _ .- ― .= ̄  ̄`:, .∴ '     (勇気 )
    /     '' ̄      __――=', ・,‘ r⌒> _/ /
   / /\   / ̄\-―  ̄ ̄   ̄"'" .   ’ | y'⌒  ⌒i
 _| ̄ ̄ \ /  ヽ \_              |  /  ノ |
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)              , ー'  /´ヾ_ノ
  ||\            \          / ,  ノ
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄          / / /
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||          / / ,'
  ||  ||           ||       /  /|  |
                       !、_/ /   〉

         ∧_∧   死ね
        _( ´_ゝ`)
      /      )           _     _
     / ,イ 、  ノ/    ∧ ∧―= ̄ `ヽ, _
    / / |   ( 〈 ∵. ・(   〈__ >  ゛ 、_―
   | !  ヽ  ー=- ̄ ̄=_、  (/ , ´ノ
   | |   `iー__=―_ ;, / / /   ←勇気
    !、リ  -=_二__ ̄_=;, / / ,'
        /  /       /  /|  |
       /  /       !、_/ /   〉
     / _/             |_/
     ヽ、_ヽ
490 :03/12/11 16:13
>>478
>>東大卒より高卒の方が優れているという議論も成り立つぞ。
>当たり前です、それが何か?

さては高卒だな。
>>485 ヒーロー勇気
>Cじゃ貴方が分からんでしょう?
>で、これならとばかりにコードを見せつける。(藁藁)
誰でも解るんじゃない?
もっと、いいネタ無いの?
492デフォルトの名無しさん:03/12/11 19:56
なんか最近ム版の関数型言語関連のスレ荒れてない?
最近上がったり下がったり忙しいことで。
「みなさんのレスを自作のOCAMLプログラムで解析した結果
知的レベルが低いと判定されたので、もうここには書き込みません」
とか妄想捨て台詞吐いて逃げ出すようなクズだもんな。
そのOCAMLコードとやらを見せてみろよ。誇大妄想狂
とうとう単なる煽り厨と化したか…>>486=Aransk
MLスレでボコボコにされて、関数型言語全般に執着し始めたね。
肥大しきった自我・根拠のない全能感・・まさに天然素材だ
496デフォルトの名無しさん:03/12/12 01:09
アランスクマンセー
コンピュータ関係で一番多いのはゲームじゃないの?
498ヒーロー勇気:03/12/12 19:16
>>487,488,489,491,492,493,496
毎度変わらぬご支援恐れ入ります。(藁)
>>490
>さては高卒だな。
いや、厨房では?(藁藁)
>>494
>そのOCAMLコードとやらを見せてみろよ。
「隠れマルコフモデル」も分からん方々にお見せしても
「酷な」だけでしょうに?(藁藁藁)

それよりも、何故ICFP2003コンテストでC++「ごとき」に
関数型言語は全滅したのか?なんとOCAMLは17チームも
送りこんだにも関わらず惨敗してしまったのか?今年
審査員になった奴は何をしていたのか?メッ!
499ヒーロー勇気:03/12/12 19:18
>>495
>肥大しきった自我・根拠のない全能感・・まさに天然素材だ

>…の第一の特徴は偏執狂の傾向である。偏執狂とは「慢性の、組織化された、
だんだんに肥大する妄想を特徴とする精神状態で、幻覚を伴わず、また悪化
あるいは回復の傾向がほとんどないもの」である。奇人が掲示板の人々
すべてを向こうに回して孤独な、きびしい敵対状態に立つときには、必ずや
自分は偉大だという強い意識がバックにあるにちがいないことは容易に理解
される。- 民明書房刊「奇妙な 2ch」より抜粋>

上記発言に関しては、素直に脱帽いたします。

「俺以外はバッカばっかり!」

この強烈な、一人よがり、>肥大しきった自我・根拠のない全能感
これ以外に何が「2ちゃんねる」を支えているのでしょうか?(大藁藁藁)
500デフォルトの名無しさん:03/12/12 19:33
Aranskが教えるライプニッツの単子論 はまだですか?
>これ以外に何が「2ちゃんねる」を支えているのでしょうか?(大藁藁藁)

2ちゃんねるを支えているのは
read.cgiとか
削除人とか復帰人とか
2chブラウザとか
ヒーロー勇気,川合の子,山崎13といったちょっと変わったコテハンの面々とか
だと思うね。

ところで「ちょっと変わったコテハンの面々」についてだが、
ヒーロー勇気,川合の子,山崎13といったコテハンの方々は
確かに真面目に会話している人にとってはウザいかも知れぬが
客観的な目で見ると、なかなかイイ味をだしているのではないかと思うぞ。
こういう人格は2chだからこそ生まれるのであって、彼らに共通する反社会的とも言える
言動は2ch文化の象徴と言えるだろうな。ニュースグループなどでは決してこのように
派手に暴れまわったりはしないであろう。
....まさか、ここで"活発に"スレをのばしていただいているヒーロー勇気殿も
物理的な社会生活の中ではこういった発言の仕方は自粛しているにちがいないだろう。
いや、むしろ考えつきもしないのではないだろうか。
2chを鑑賞するとやはり人間というものは性悪だということがはっきりと分るね。
何が言いたいかというと、2chを支えている一番の要因というのは
こういったコテハンの方々に象徴されているのではないかということだ。

ところで旧Aransk殿、関数型言語が普及していないのは明らかだし、
リソースの観点から見るとCなどに圧倒的に負けていることは承認するから
このスレを平穏にしてくれないかね?
これを敗北宣言ととるなら....よろしい、そうしてくれたまえ。
俺は"リソースの観点から見るとCなどに圧倒的に負けている"と言っただけだが、
それでことが治まるのならこのスレはゆったりと関数型言語について語れるようになるだろう。
モナドには窓がない。それはまるで他人の言葉が耳に入らないAranskのようだ
503 :03/12/17 12:56
Haskellのモナドとあんま関係なし
APLのモナドともあんま関係なし。
http://www.haskell.org/~petersen/haskell/lc2001.html

真偽はさて置くとして・・・。

自分の好きな言語で拡張可能なエディタがあったら嬉しいですね。
Lisp や Smalltalk みたいな「環境型」言語はこういうのに向いてそう。
静的型付けな関数型言語はエディタのマクロとしてどうでしょう。
設定ファイルを書いていて、型エラーを気にするのはやだな。

と思いました。皆さんはどうですか? 例えば、OCaml の top 環境と
して使えるエディタあったら嬉しいでしょうか?

-- OCaml 製のエディタってありましたよね ;-)
507Lisp初心者:03/12/23 21:02
関数型言語を勉強するためのよい方法があったら教えていただけないでしょうか?
まだ勉強不足なのは重々承知なのですが、関数型言語の凄さが理解できていません。
何かきっかけになるようなものがあったら教えて下さい。
適当にプログラムを書いてみる。
少しでも短くなるように書き直す。
他のやり方をあらん限り試してみる。
できるだけ少ない機能で作ってみる。
そのうち悟りを得る。
入門書を読んだ後、自分の目的のためのプログラムを書く。すると、
特にプログラムの面白い(重要な)部分が、
1st classとしての関数、λ、高階関数等が利用できることで、
短く、美しく、さらに簡単に書けることに気づく。

TreeやList構造との相性がいいから、XMLの処理とかやってみるといいかもしれない。

# Lispの例ではないけれど、
# Xerces(DOM, C++)で書いた後に、Haskell Xml Tool Box (or HaXml)で書き直すと
# 移ると見通しの良さと容易さに驚いた。
>>507
頭の中で常にλ計算をする
511Lisp初心者:03/12/24 22:28
ありがとうございます。
じっくり考えてプログラムを書いてみたいと思います。
悟りが開けるよう修行に励みます。
悟りを開ける言語は良いけど、悟りを開かないと使えない言語は・・・。
(代入くらい良いじゃん・・・)
>>512
代入なんて、しなくて済むならしようとは思わない。
同じ文字列なのにいつ実行されるかによって結果が違うなんて
分かりにくいだけではないか。
514デフォルトの名無しさん:03/12/25 04:59
MLライクなUNIXシェルとかあるのかな。あったら面白そうだなと思って。
基本的にUNIXのCUI環境は好きだけど、シェルスクリプトをはじめ
各種コマンドのオプションや環境変数に型がある方が分り易いと
思うんだけどどうかな。PATHやLS_COLORSなんかも綺麗に記述できるよね。
>>514
シェルじゃなくてOSとプログラムを全て書き換えないと、
>  各種コマンドのオプションや環境変数に型がある方が分り易いと
は無理。
>>515
もちろん全てのコマンドを書き換えるような真似はできないけど、
インタラクティブに実行してるシェルやシェルスクリプトにおいて
型チェックしてくれたら、いい感じかなあなんて思ったり。
旨い事、この変のUNIX的な環境に乗せられたら面白そうだなと。
>>516
型チェックをするにはコマンドが要求する型というものが必要だけど、
UNIXにおいては引数はただの文字列でしか無いからできない。
例えば、プログラムが文字列を要求してるのか数字を要求してるのかを知る方法がないし、
プログラムは各自文字列を内部でパースしてる。optionもシェル変数も型は全てstring。

型を考慮した全く新しいシステムってことなら、面白そうだね。
オーバーロードの規則をうまく定めればそれほど入力も面倒にならないだろうし。

# シェルにそれぞれのコマンドについての知識を持たせて文字列をパースさせて…
# というのなら、時間の無駄かな。
# 複雑なシェルスクリプトの内部で使用する際に型が欲しいのなら、
# 最初から関数型言語でスクリプトをかけばいいし。
>>517
># シェルにそれぞれのコマンドについての知識を持たせて文字列をパースさせて…
># というのなら、時間の無駄かな。

自分の考えていたのはこっちですが、あんまり意味ないですかね。

>optionもシェル変数も型は全てstring

UNIX使いの人においては、単なる文字列のやり取りの自由度の高さは
とりがらとされていますね。レジストリに対して/etc/*の優位性を
挙げるときもプレーンテキストであることを主張したりとか。
UNIX的環境にはそれなりの価値観があるんでそれはそれでいいと思います。

パイプにおいてやり取りされるデータに型があったらスクリプト環境も
激変するのでしょうか。私には分かりません。

UNIXを使っていて不自由に思うのは、計算機のためのデータと
人間に表示するためのデータが混在していることです。
人間に表示するためのデータからsedで文字列を抜き出したりとか。
やり取りされるデータの全てに型があるなら、もう少し整理された
感じになるのではとは思いますが、結局既存のUNIX的な自由度の高い環境が
一番使いやすかったということなんですかね。

ヘタレの妄想はここらへんにして、もう寝ます。お休みなさい。
>>518
>  とりがらとされていますね。レジストリに対して/etc/*の優位性を
爆笑してしまったではないか。取り柄は「とりえ」と読むの。

>  感じになるのではとは思いますが、結局既存のUNIX的な自由度の高い環境が
> 一番使いやすかったということなんですかね。
抽象型の概念が整備されてなかったのが大きいと思うよ。
>とりがら
はぁぁ・・・2ch 語って増えはすれども減ることはないのね。
また覚えなきゃ。
え、マジで間違えたの?>とりがら
漏れは鶏ガラのように使い古された何かという意味合いかとおもったよ(死
新2ch語かい(藁
「高さはとりがらとされていますね。」を
「 高さが取り沙汰されていますね。」に脳内変換して読んでいた。
微妙に変な type だなと思いつつ。

想像のはるか斜め上を行く、よい2ch語だな。
>type

typo?
ただの馬鹿がやった間違いを「2ch語」とか言って
残してくと、どんどん馬鹿が量産されるだけだぞ。
>>518以降の不毛なやり取りでスレも潰れるしな。
まぁまぁよいではないか.それが2chの鶏がらだ.
518の内容が凄いまともなこと言ってるだけにうけるw
ふいんき型言語については別スレへGO!

ふいんきのガイドライン
http://that.2ch.net/test/read.cgi/gline/1070428448/l50
今まで勘違いしていたこと
http://human2.2ch.net/test/read.cgi/owarai/1066487700/l50
528デフォルトの名無しさん:04/01/23 18:28
もうそろそろ(・∀・)age!!とく
いままでScheme厨だったけど
環境を選ばないOCamlを勉強してみようと思う。
では。
2ch語かわかりずらいので、

とりがら(←なぜかへんかんできない)

のようにすることを推奨します。
鶏ガラ(←変換出来た!)
532デフォルトの名無しさん:04/02/02 13:15
関数型言語で仕事して企業から金貰ったことあるひといる?
533デフォルトの名無しさん:04/02/02 13:40
何かと思ったらとりえのことか!(禿藁
534デフォルトの名無しさん:04/02/02 17:36
>>529
インタプリタは環境を選ぶだろうから、バイナリをはくの?
GCC?
>>532 Lisp なら何回かある。数千万程度のやつ。
>>535
数千万「行」?

俺にはとても書けん
>>535
Lisp って common lisp ?

>>536
数千万「円」? 「j」? 「バイト」?
いずれにしても、かなりのものだと思われ。
ドル>>行>>バイト>>>>円
こんなかんじか?
ところでefunsというMLで書かれたEmacsライクなエディタが
あるんだけど、これって誰も使わないの?エディタ自体も拡張言語もMLが
使われてるらしいけど、今では誰もサポートしてないので、
最新のOCAMLでビルドできないらしい。2.0ぐらい?分らないけど。
最近少しだけMLを勉強始めたので興味を持ちました。
Common Lisp で、円です。行は数万行。
542デフォルトの名無しさん:04/02/07 02:05
誰かHaskellの新しいスレッドを立ててください

【タイトル】
関数型プログラミング言語Haskell Part3
【名前】
デフォルトの名無し
【mail】

【本文】
Haskellの公式HP
http://www.haskell.org/
日本語サイト
http://www.sampou.org/cgi-bin/haskell.cgi
Http://www.teu.ac.jp/kougi/koshida/Prog6/index.html

過去ログ、関連スレは>>2-5


2以降は私が書きますので
【2】【3】
っていうのはただの番号だから書き込まないでね
それじゃよろぴこ
ところでpythonは関数型じゃないの?
>>547
pythonは関数型的な事も出来るだけ。

作者のGuidoさんはpythonの関数型的な特徴をあまり良く思ってないらすぃ。
良く思ってないとは何事か
そんなにオブジェクト指向って肩書きの方がええのか?ああ?
気分悪いわ
そんな嫌なら関数型機能全部取ってしまえよ>Guidoとやら
550デフォルトの名無しさん:04/02/07 09:07
関数型機能が厨房を呼び込むからだろ。
>>549みたいな
( ゚д゚)ハァ?
>>550
まぁ確かに関数型が呼び込む恐しいモノがあるよな。かつて関数型関連スレを恐怖の
どん底に落し入れたおそろしい存在。過ぎ去ったかと思うとまた Haskell スレに降
臨。今 Haskell スレの連中はガクガクブルブルと思われ。
553デフォルトの名無しさん:04/02/07 15:41
どうでもいいけど、誰かスレたててくれよー
ちょっと時間を置いたほうがいいかもしれませんよ
文学板より入電!我アランスコに遭遇せり。メーデーメーデー……
ガ・・・よく聞こぇ・・ピー・・ガ・・・どぅぞ
文学板からの最後の通信によれば、↓のような恐怖が今我々の目の前に迫っている。
ttp://book.2ch.net/test/read.cgi/book/1074262148/l50
とりあえずこのスレも深々度に潜行しない危険なヨカーン。旧 Haskell スレは……。
>>549
Guidoは、「プログラミングを学び始めた人」や
「専門的なプログラマーでない人」にも Pythonを
使ってほしいと願っています。そのような人に
map, apply, reduceのようなHOFの使用(理解)を
「強いる」のはよくないことと彼はかんがえています。
そこで、関数型言語であればHOFが使われるような
問題のうち典型的なパターンにたいしては、HOFの
概念に依存しない構文をPython言語で用意する
というアプローチを、今はとっています。

近年では、Haskell言語のList Comprehensionsに
似た構文がPythonに導入されていて、さらに現在は
遅延評価版のgeneratorベースで実装しようとさえ
していますので、関数型プログラミングのアイディアが
本質的に嫌いということはないのでは。

なお、PythonにビルトインされているHOFs (map,
apply, reduce) はclassをつかって自分で作ることが
できます。したがって、これらが削除されたとしても
関数型スタイルのプログラミングをしたい人は困ら
ないでしょう。
(もし続くならPythonのスレッドでお願いしますが、
trollingは勘弁してください。)
>>557
(;´Д`)
>>558
なんかPythonって面白そうですね。
Haskellスレ立てたよ

関数型プログラミング言語Haskell Part3
http://pc2.2ch.net/test/read.cgi/tech/1076418993/
562デフォルトの名無しさん:04/02/11 14:00
誰かスレ立てて

タイトル
超準関数型言語Aransk Part1

本文
ttp://homepage3.nifty.com/Aransk/


よろしこ
563Aransk:04/02/22 21:11
久しぶりに戻ってきたら、なんとこんなに
沈んでしまっていた。(T_T)
ttp://www.geocities.jp/aransk88
こっちもオープンしたから、よろしくねぇ。(^O^)/
(;´Д`) < Clean スレだけじゃ満足できないの……このスレももうダメポ
誰かAPLとJとKの話題も書いてくれ。Jを主力言語として使っている身として、心細くてかなわん。
566Aransk:04/02/23 17:11
>565
JとKって、初耳ですが?
ttp://directory.google.com/Top/Computers/Programming/Languages/
ゴーグルにも載ってないマイナーな言語ですか?
TTTuneoとかHSPとか「ひまわり」とか、そのレベルでしょうか?(^_^;)
ttp://www.geocities.jp/aransk88
どうよ?

.NET向け関数型言語 Nemerle
http://www.nemerle.org/
ゴーグル?
"J言語" でぐぐるとKO大のページがヒットするが、関係者でつか? >>565

APLもよく知らんのだが、配列処理とか統計処理向きの言語?
MatlabとかS-plusに近い??
関数型言語???
J って使ってる人居たのか。サンプルコードが計算主体なんでスルーしてました。

http://www.jsoftware.com/
 (私は裏日本の山奥の日曜プログラマなので割り引いて読んで頂き
たいのだが)Jは行列や高次元配列、直積や部分集合等の取り扱いが
手軽なので、例えば隣接行列を使ったGoogleの被参照度評価法の
サブセットを試作する等には向いているかも(実装はC系の言語に
なっちゃうかもだが)。
 個人的には双対(under/dual with respect to)演算子(&.)が好き。
 今作っているのは歴史的かな遣いや方言用のIMEというよりKKCの
エンジンで、(そういえばこれも隣接行列の操作が主体だが)ソースは
全部で1000行くらいに収まる見込み。これはUnix/darwin系ならJで
実装可能だろうけどWindowsだと難しいか。
>>569
そうか、最近の人は知らないんだな。あの変てこなIBMのAPLキーボードを。

573Aransk:04/02/24 17:52
>567
Nemerleなかなか良さ気なカンジですね。
def x = 3;
def y = "foo";
def fbq = make_fbq ();
The values of x, y and fbq cannot be changed.
mutable x <- 3;
mutable y <- "foo";
mutable fbq <- make_fbq();
The values of x, y and fbq can be changed.
変数がいちいちmutableってのはもう一つですが…
J言語の
J is a very rich language.
You could study and use it for years, and still consider
yourself a beginner.
ちょっぴり萎え(-_-;)
APLは知ってます。あの変てこな記号で以前既に萎え(-_-;)

ついでに、この際、K言語なるものも教えてください!(*^^)v
KOのKでしょうか?(大笑い)
ttp://www.geocities.jp/aransk88
ttp://homepage3.nifty.com/Aransk/

マヌケな詐欺師です。

http://page7.auctions.yahoo.co.jp/jp/auction/g16206466

画像と説明を間違って出品。
盗用元
http://page7.auctions.yahoo.co.jp/jp/auction/g15336665
http://page5.auctions.yahoo.co.jp/jp/auction/e34607530

落札額を天文学的な価格に引き上げてやってください。
APLって、数学ソフトウェア(S,R,MATLAB,Mathematica,...)に影響を与えたらしいけど、
>>186の様な観点から見て関数型言語なんでつか?
識者の意見を求む.
576Aransk:04/02/26 18:36
>575
APLのような象形文字をコンピュータ言語に許したら
可読性はどうなるのだろうか?
プログラマーは全員ロゼッタストーンを抱えて
キーボードに向かうことになるのか?(^_^;)
ttp://www.geocities.jp/aransk88
ttp://homepage3.nifty.com/Aransk/
577洩れ車:04/02/26 23:24
>>573
> J言語の ... ちょっぴり萎え(-_-;)
> APLは知ってます。あの変てこな記号で以前既に萎え(-_-;)
洩れなんかは難攻不落だと醜女でも魅力的に見えちゃう質なんですけどねえ。
でもJは三日以上付き合っても飽きない美人だと思います。
間口も広いし, 奥行きも深いので, 無理でなければやってみて損は無いと思いますよ。

> ついでに、この際、K言語なるものも教えてください!(*^^)v
> KOのKでしょうか?(大笑い)
>>398を御参照下さい。
最後に笑うものが最も良く笑うって諺もあります。笑いの安売りは損ですよ。
朗らかな笑いだったらすいません, 失言をお詫びします。スルーして下さい。
578洩れ車:04/02/26 23:32
>>575
識者じゃないし他の言語にそれほど詳しい訳でもなく, APLの話ではなくて主にその方言のJの話ですが, >>186の項目に沿って点描すると,

1. 関数が最初のクラス (オブジェクト) である。
7. 多くのFPは「高階」関数 (つまり、関数を操作する関数を、操作する関数) を利用します。
 例えば C の float foo(float z){return sin(z)+cos(z);} は foo =: sin + cos と記述。
z は複素数や配列であっても可。foo は (+ (sin cos)) みたいな形で関数型
データとして蓄えられ, デフォルトでは関数として呼び出されるが, データとして
呼び出すことも可能。ただ, 関数をデータとして呼び出して加工する必要が
生じる機会はそれほど多くない。

3. リスト処理に主眼が置かれている (たとえば、Lisp という名前にもこれが表れています)。
2. 主要な制御構造として再帰が使用される。
 リスト処理も可能だが, 矩形配列は入れ子リストではなく矩形配列として扱う
事によって効率を上げている。
 矩形配列の処理にはループも再帰も必要としない。一般のリスト処理には
再帰が必要なこともある。一部の例外を除き末尾再帰のループへの変換までは
行わない。
 APLは制御構造としてgotoしか持たなかったが, それで可読性を損なうことは余り
無かった。さすがに少し不便なのか最近のAPLとJはgoto以外の制御構造も持つ。

4. 「純粋な」関数言語は副次作用を避ける。
 関数のトップダウンあるいはボトムアップ定義が推奨され変数への代入や
再代入は推奨されていないが計算に時間が掛かる中間結果をあちこちで
参照するような場合には必ずしも躊躇う必要はない。

5. FPはステートメント の使用を思いとどまらせるか、あるいは完全に拒絶し、...
 全てのプログラムは1文で記述しようと思えば可能だが, 可読性や実行効率を
損なうので, 一部のオタッキーなJer以外はステートメントも使う。

6. FPは、どのように 計算するのかということよりも、 何を 計算するのかということを気にします。
 今一つ意味が分かりませんでした。
579洩れ車:04/02/26 23:33
余談: Mathematicaの開発者Wolfram氏が出した本の「私に影響を与えた
先人のリスト」に, APLとJの開発者であるKenneth Iverson先生の名前も
挙がっていたそうだが, その本を通読したIverson氏曰く, 「リストアップされた
本人として断言できる。私からWolfram氏への影響はゼロだ」
尚, 数学をやった方ならIverson記法ってのは聞いたことがあるのでは?
[真の命題]=1, [偽の命題]=0 ってやつです。
>>578
> 関数が最初のクラス(オブジェクト)である

翻訳が変。関数がfirst class object、つまり操作の対象となり得るということですね。

元のIBMのページ見てみたら、ちゃんと

> 関数は、ファーストクラス・オブジェクトである。 つまり、「データ」について行えることは
> すべて、関数自体についても (関数を別の関数に渡すなどの方法で) 行うことができます。

となってますよ。
581洩れ車:04/02/27 01:15
御指摘ありがとう。無検証に孫引きしてました。小生自身門前小僧ですので用語等滅茶苦茶だったと思いますが御容赦下さい。
582Aransk:04/02/27 17:31
>577
K言語の情報有難う御座いました。PL/SQLの関数言語版のような?
J言語はお陰さまでDLしました。ぼちぼち楽しみながら味わうつもりで
おります。YahooUSAのプログラミング言語カテゴリーに入るぐらいだから
結構向こうではポピュラーなんでしょうね。
Rebolって日本ではあまり人気がありませんが、
自称関数型言語?らしいです。
既出であれば無視して下さい。
ttp://www.rebol.com/
>最後に笑うものが最も良く笑うって諺もあります。
>笑いの安売りは損ですよ。
結果じゃなくて、プロセス重視なものですから…(*^^)v
ttp://www.geocities.jp/aransk88
ttp://homepage3.nifty.com/Aransk/
583#:04/03/01 16:07
age
584Aransk:04/03/02 17:12
エリクソンの関数型言語ERLANGってどうですか?
もう話は出ました?
ttp://www.erlang.org/
日本語はココしかない?
ttp://www.kmonos.net/alang/etc/erlang.php
日本語も通りそうだし、仕様的にはすっきり
している。またプロセス間でのデータ受け渡し
なんてコンカレントなことも出来るようです。
ただ、WINで26MBってのがダウンロードには
いかにも重い!(^_^;)
ttp://www.geocities.jp/aransk88
ttp://homepage3.nifty.com/Aransk/
585 :04/03/05 21:23
クイックリファレンスなど見てみたけど、やっぱりAPLやJを関数型言語と呼ぶのは抵抗があるなぁ。。
MLやHaskellと同列に論ずるのは無理ってゆうか…。
>>99「手続き呼び出しが関数のような形…」のレベルの噺の様な??
だからケシカランというのではなく、関数型でなくてもこれはこれで面白そうだから、APLスレ立てを提案します。
APLの演算子はarrayに対するcombinatorぽいから、
その辺でAPLが関数型言語との関係が語られることが
あるのではないかと予想。
BackusのFPとかオマイラどうですか?
Backus自身論文の中で、APLはイイ!けど不満もある。だからもっと突き抜けたFPを提案する。
と書いているし、記号はAPLの影響を受けていると思う。
588Aransk:04/03/07 18:26
"Can Programming be Liberated from the von Neumann Style?
-- A Functional Style and Its Algebra of Programs"

ttp://www.stanford.edu/class/cs242/readings/backus.pdf

1977年 チューリング賞講演より
動的型決定の関数型言語って LISP 以外に無いのかなぁ。
591sage:04/03/08 19:06
CleanのDynamic
うーん、名作だなあ
Backusは論文の中で「ここで提案するFPはラムダ計算をベースとしたものではない」とはっきりLispを峻別している。Functional Programmingという概念が生まれた当初、それはLispを含まなかった。
594デフォルトの名無しさん:04/03/10 00:31
それでは関数型言語として有名なMLとLispでは何が違うんですか?
これの元ネタを知りたい、パックで前歯折りage!
(´-`).。oO(なんで>>594はpaperを読もうとしないんだろう・・・)
597デフォルトの名無しさん:04/03/11 22:42
「Backusの関数型では,pure Lisp, ML, Haskell 等が具現している作用型 (applicative) とは異なり,変数を陽に出さない関数表記と,その結合形式の集合を用意しておき,それらを組み合わせることがプログラミングとなる」
つまり、LispだけでなくMLも「非Backus流の関数型言語」なのだそうだ。
598597:04/03/11 22:48
出典:情報処理 43巻9号1017頁
「結合形式の集合」とは数学でいうとどういったものに該当するのかな
C言語は副作用型関数型言語。
知らん。米澤先生に訊いてくれ〜! >>599
ttp://www.ipsj.or.jp/members/Magazine/Jpn/4309/article015.html
ラムダ算法ではコンビネータにあたるけど
>601
パス要求される
Haskell: The Craft of Functional Programming (2nd Edition)、 Simon Thompson著 (Addison-Wesley, 1999)
って日本語訳の本でてる?
でてないです
関数型言語使いは英語に強くないとやってられないな・・
Schemeとelispはそれなりに使えるんだけど、純粋な関数型言語を学びた
くなった。HaskelとOcamlどっちがおすすめですか?

文字列処理とかちょっとした日常の作業に使う程度の予定です。あくまで
学習がメイン。
純粋な関数型ならhaskellじゃないかな
ユーザーはOcamlが多そうだけど
OCaml本の初学者向けお勧めってどれ?
>>607
Standard MLも候補に入れてください
>>608
どうもです。とりあえず Haskel をあたってみようと思います。
>>610さん的には Standard ML がお勧めなんでしょうか?名前すら
知らなかったので調べてみようと思います。。
モスクワMLトカ?
Backus流の純粋な関数型言語キボンヌ
614デフォルトの名無しさん:04/03/13 17:57
自分自身と同じ型の関数を返す関数ってのは
MLやHaskellでは表現可能ですか?
またそれはどうやって表現するんでしょうか?
# in GHCi

> let id x = x
> :t id
id :: forall t. t -> t
> :t id id
id id :: forall t. t -> t
(* in OCaml *)
# let id x = x;;
val id : 'a -> 'a = <fun>
# id id;;
- : '_a -> '_a = <fun>
# id 1;;
- : int = 1
# id id 'a'
- : char = 'a'
# let id2 = id id;;
val id2 : '_a -> '_a = <fun>
# id2 'a';;
- : char 'a'
# id2;;
- : char -> char = <fun>

こんなとこかな. _a な型は OCaml では,一度適用されるとその型になってしまう.どうしても id2 のような記法で型多相にしたければ, let id2 x = id id x;; とすること.
もちろん, let id2 = id;; なら id2 は型多相.
>>615-616
ありがとうございます。と素直に言いたいところでしたが、
ううーん、読めない・・・
どっちかの言語の勉強を始めてみます。
自分自身の型を返す関数とはCでどう記述したらいいのかを
考えたのがきっかけでした。
typedef func (*func)(func);
こんな再帰的な関数ポインタ型を作りたいなと。
Cではこのような型定義はどうしても無理そうな結論になりました。
618616:04/03/15 11:58
なるほど.ってそれはバッドノウハウのスレか?

どっちにしても(GHCi書いたのは漏れじゃないが)
let id x = x
がキモで, id は x を受け取り x をそのまま返す関数.
id にはどんな型も適用できる型多相な関数なので, id 自身を
引数として与えることもできる,ってわけ.

>617 のような型宣言じたいに自分自身を含む定義は, OCaml では
明示的に禁止されている.
# type t = t -> t;;
The type abbreviation t is cyclic
が,コンストラクタ(型識別のためのタグのようなものという理解
でよい)を使えば回避できる.
# type t = T of (t -> t);;
type t = T of (t -> t);;
# let func = function T(f) -> f;;
val func : t -> t -> t = <fun>
うーんこれって期待した動作なのかな?よくわからん.
619/= 615:04/03/15 14:17
>>617
> 自分自身の型を返す関数とはCでどう記述したらいいのかを
型を返す関数は書けないが。同じ型の関数を返す、という読みでいいのかな。

そもそも何に使う気?単なる好奇心?
副作用の無い関数にできることは、何かに作用して返り値を得ることだけだ。
> typedef func (*func)(func);
こんなものを作れても、そこからは
同じ無意味な関数を返す関数しか出てこないから何の役にもたたない。

>>618
Haskellでもできない。コンストラクタを使うと近いことはできる。
-- f # xはf(x)の意味。
newtype RecFunc = RecFunc {(#) :: RecFunc -> RecFunc}
f = RecFunc id
---
Main> :t f
f :: RecFunc
Main> :t (f # f)
f # f :: RecFunc
>>619
状態マシン。
>>617
関数へのポインタを構造体にいれる。
>>619
>状態マシン。

厳密な型定義は出来ないだろう。
そういう場合はキャストを使うのがセオリーだね。
#include <stdio.h>

void (*f(void))(void)
{
static int n = 0;

printf("%d\n", n);
return (n ++ < 10) ? (void (*)(void))f : NULL;
}

int main(void)
{
void (*(*p)(void))(void) = f;

while (p)
p = (void (*(*)(void))(void))p();
return 0;
}
>>620-621
だからそんな「状態マシン」からは、副作用を用いない限り
何の情報もとりだせないと言ってるんだが。

newtype Auto i o = Auto (Auto i o -> (o, Auto i o))
のように結果を取り出せるようにしなければならない。
だからもともと >>617

>自分自身の型を返す関数とはCでどう記述したらいいのかを
>考えたのがきっかけでした。
>typedef func (*func)(func);
>こんな再帰的な関数ポインタ型を作りたいなと。

がやりたかっただけだろうが、ゴルァ!
"手段" の為には "目的" を選ばない、正に関数型言語厨だな >>622
>>623
だから目的を聞いたんじゃないか。

>>619
> そもそも何に使う気?単なる好奇心?
> ...
> 同じ無意味な関数を返す関数しか出てこないから何の役にもたたない。
とな。そうしたら何も>>621->>622が何もわかってない返答をした。
おまえもな。
最後の行は意味がわからない。無意味な型を定義しようとする
ほうが目的と手段が逆転しているのではないかと俺はおもうがな。

ところで、 
> newtype Auto i o = Auto (Auto i o -> (o, Auto i o))
は newtype Auto i o = Auto (i -> (o, Auto i o)) の間違い。
>>617みたいなものは内部情報がとれないので使えない。
>>621って全然
# >typedef func (*func)(func); 
# になってないな。
>>623
もしかして君は状態マシンというものを知らなくて、
> だからそんな「状態マシン」からは、副作用を用いない限り
「副作用を用いない限り」に引っかかってヒステリー起こしてるのか?

標準的な状態マシンってのは内部状態を変更した自分自身を(or も)返すだけで、
引数に自分自身をとったりしないんだよ。
実際621だって引数voidだろ(621は内部状態がstatic変数だから別の問題があるが)。

> だからそんな「状態マシン」からは、副作用を用いない限り
これは副作用使いまくれば処理内容と無関係な、しかも、もともと
役に立たない型からでもなにかができるだろう、という最大限譲歩した主張だ。
>>625
> 引数に自分自身をとったりしないんだよ。
=>
> 引数に自分自身と同じ型の別のオブジェクトをとったりしないんだよ。
627Aransk:04/03/18 17:47
お久しぶりで御座います。J言語はC++並の複雑さ??学習ロードが高すぎて…(-_-;)
で、今CURLに嵌っております。ttp://www.curl.com/solutions/download.php
ここからV3.0をダウンロードします。そして…何の設定もしません。ファイルをオープンします。
{curl 3.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}
なんと、shift-jisまで自動的にコードが作成されたぁ。(*^^)v
感動の瞬間であります。その下に""無しで、こう書きます。
今日は カール君!
そしてRUNをクリックしても良いし、Ctl+F5でも良い。ジャーンとブラウザが
立ち上がります。ー>今日は カール君!
628Aransk:04/03/18 17:50
V3.0からマクロがサポートされております。LispやSchemeと似たようなものです。例えば
お決まりのswapマクロ定義:
{define-macro public {swap ?x:identifier, ?y:identifier}
{return
{expand-template
{do
let tmp:{compile-time-type-of ?x} = ?x
set ?x = ?y
set ?y = tmp
}
}
}
}
これがマクロ呼び出し:
{let first:double = 1.0,
second:double = 2.0
}
{swap first, second}
{spaced-vbox
background = "silver",
{text first: {value first}},
{text second: {value second}}
}
ー>first:2.0
second:1.0
一応ハイジェニック=健康マクロと称しております。ところが、ワタクシ恥ずかしながらLispやSchemeのマクロが
出て来ないのです。ー>本を図書館に返却したので。(^_^;)誰か申し訳ありませんが、同様機能のScheme又はLispの
コードを書いて頂けませんか?
Scheme:
(define-syntax swap
(syntax-rules ()
((swap x y)
(let ((tmp x))
(set! x y)
(set! y tmp)))))

Lisp:
(defmacro swap (x y)
(let ((tmp (gensym)))
`(let ((,tmp ,x))
(setq ,x ,y)
(setq ,y ,tmp))))
630620:04/03/19 01:26
>>617
謎 f(何か)
{
/* 省略 */
return g;
}

f と g が同じ型のとき「謎」の部分がどうなるか知りたいんだ
と思ってたんだが、fでなきゃやだって一点のか?まあ、どっち
にしろ無理なんで構造体をかまして次のようにする。

typedef struct retval_t {
struct retval_t (*fp)(int);
} retval_t;

んで各状態を担当する関数をこさえて、引数に応じて次の状態
を担当する関数のポインタを(構造体に入れて)返すのだ。

retval_t f(int);
retval_t g(int);
:
test
632Aransk:04/03/19 15:00
>629
どうも有難う御座いました。やっぱり本家は相当シンプルですね。
変数になんでも入るってところが味噌なんだ。
Primitives型チェックの厳しいMLとかOCAMLなんかにも
マクロありましたっけ?と言うかScheme、Lisp並みのマクロを
実装している言語ってRebolが少し似たことが出来る程度じゃ
なかったでしょうか?
>>632
おまえはえらそうなことをかいているまえに
しっているとしょうしているげんごを
ひととおりきちんとまなびなおしてから
でなおしてこい
Ocamlp4 - Pre-Processor-Pretty-Printer for Objective Caml
ttp://caml.inria.fr/camlp4/index.html
635Aransk:04/03/21 18:38
>633
メモリーが小さいものですから、後入れ先出しになっております。
今キューに残っているのはCURLしか…(*^^)v
そういう場合ふつうは先入れ先出しだと思うがな
>>636
1個いれる度にオーバーフローしてるから。
名前がまぎらわしいので普及しない>curl
この curl って MIT の curl と同じなのか.ちょっとわかりにくかったな.
ところでちゃんと見てないんだけど curl って関数型なの?
640Aransk:04/03/22 18:03
>637
貴方は正確にジョークを理解している。そうです一個しか残らない、
つ〜か完全に残っているものは一つもない。(笑い)
>639
MITのCurlPjtが前身です。今はCurlCorpとなり、日本ではNTTと
技術提携しております。韓国でもかなり流行っている?
関数型かどうか議論は分かれますが、Lispの(が{に変わっただけ
って部分+JavaのOO指向=CURLの文法です。
機能的にはHTML+JavaScript+Javaか?


Cとかx86とかはじめからマルチプラットフォームで
ネイティブコンパイルできるとこが良さげ>curl
インストーラーとか付いてたり、
どこでも動くって意味では仕事で導入しやすいかも。
あんま使いたいとは思わないけど面白そうではある。
なんで{}にしたのかが謎。
642Aransk:04/03/22 18:31
ttp://itpro.nikkeibp.co.jp/free/NSW/NEWS/20040307/141019/print.shtml
これで見ると有料ソフトのように見えますが、日本語版V2.08だけです。
前記CurlCorpのHPから英語版V3.0が無料でダウンロードできます。
かつ日本語SJISもバッチリ通ります。
643Aransk:04/03/22 18:34
VBのようなGUIツールも付属しています。
但しDB操作はJDBC経由のみのようです。
644634:04/03/22 20:59
漏れはスルーでつか…
次世代web言語と言われてたやつ?
>>644
camlp4 がなんなのか理解されなかったと思われ.

camlp4 は lisp なみに強力な,しかも型に安全なマクロ
機能を持つプリプロセッサ. scheme の構文を受け取っ
てコンパイルとかまでできる(これは微妙に怪しいが……).
コード例は >>634
647565:04/03/23 10:58
>>627
『今日から現場で使えるJ言語』って本を書きたいと思ってますんで夜露死苦(思ってるだけ)。
648Aransk:04/03/23 15:08
>646
悪い!てっきりCaml専用のエディターかなんかと勘違いしました。

話はCurlに戻りますが、SideBySide手法ってご存知ですか?
Curlはどんなに文法が変わろうが機能がバージョンアップされようが
全てに対応可能なんですって!

何故そんなことが可能なのか?

それは全てのバージョンをインストールしておくことですって!(笑い)
つまりコードの先頭に必ずバージョン名が入っているので
それに基づいて自動的にそのバージョンのモジュールが起動する。
但しバージョン間の互換性は一切無いそうです。(大笑い)
今V3.0最新版を入れていますが、確かにWEB上で公開されているサンプルは
一切動きません。−>いかにもMITの連中が考えそうなアイデアですよね?

649Aransk:04/03/23 17:51
言い忘れました。CurlはOO指向を満たしていますが、関数(メソッド)の
オバーロードだけは出来ません。F#と同じです。但しオーバーライドは出来ます。
Camlはどうでしたっけ?
>>649
OO指向とは?とか Caml はそもそもオブジェクト指向じゃない,とかいった
細かい指摘はさておくとすると,型にうるさい OCaml ではオーバーロードは
できない.オーバーライドはむろんできる.
もっとも,オプション引数かバリアントか多相メソッドを使えば,同じ処理は
できるだろう.
APLとJとK のスレたてよう! >>647

J言語の本って、いくつかあったけど、すぐに絶版になってるよね...
652Aransk:04/03/24 15:56
>650
>OO指向とは?とか Caml はそもそもオブジェクト指向じゃない,
>とかいった細かい指摘はさておくとすると
失礼しました。ObjectiveCamlです。
Objective Caml is a general purpose programming language
that combines functional, imperative, and object-oriented programming.
これって?細か「過ぎる」指摘でしょうか?(*^^)v

まぁ指摘しなくてもアホでも知ってる事だしな
>>653
そっとしといてやれよ……
# 元の 655 は復帰させなくても良いよね。

Paul Graham が作った、Yahoo! Store カスタマイズ用言語の
RTML は純粋関数型言語なのだそうです。

http://store.yahoo.com/rtml.html

出所はこちら
ttp://www.shiro.dreamhost.com/scheme/trans/road-j.html
656Aransk:04/03/30 11:53
>655
># 元の 655 は復帰させなくても良いよね。
こりゃぁ、いくらなんでもマズかんべぇ。
それとも応える自信がないの?(笑い)
ひどいとは聞いていたが、ここまでやるのか?(-_-;)
>>656
怒らせたならスマソ。
煽りっぽかったし本筋と関係が無かったから、わざわざ貼るのが
面倒だったもんで。
658Aransk:04/03/31 15:55
>657
この程度で怒っていたらこの2ちゃんねるでは
生きて行けません。誤魔化し、証拠隠滅、挑発
罵倒、何でもありのところが面白い。(*^^)v
この泥沼のような不透明性とメタンガスのような
発言こそ、2ちゃんねるの華ではないでしょうか?\(^o^)/
さすが有名コテハンは言うことが違いまつね
660565:04/04/01 21:57
>>651
即死スレの恐れがあるのでとりあえず点呼取ってから決めましょう。
nounから始めてdyadまで行ったら立てる、そうでなければここ間借りということで。
まず私から:
noun define NB. つまんなくてスマソ。
565
)
661デフォルトの名無しさん:04/04/02 14:44
FPについて書かれたよいドキュメントはないですか?
日本語であればいいのですが、なければ英語でもいいです。
>661
FPの何についての情報が欲しいのかによって答えは変わるかと思われ
たんに
勝ち組win98SEユーザーです。

Autoexec.batに

set path="D:\lsi-c-shishokubann\BIN;d:\ocaml\bin;"
set ocamllib="D:\ocaml\lib;"

と設定した後に再起動して次のように打ち込んだら、

D:\Ocaml\bin>ocamlc -v
The Objective Caml compiler,version 3.07+2
Standard library directory : C:/ocamlmgw/lib

となり,libへのパスがうまく通りません。
d:\ocaml\libへパスを通す方法を教えてください。
set ocamllib=D:\ocaml\lib
666デフォルトの名無しさん:04/04/03 06:44
データベースでOODB(オブジェクト指向データベース)っていうのは
あるけど、FDBっていうのはありえないのかな。
>>666
RDBがそもそもそれなのではないだろうか。
SQLはある意味関数型言語だと言われているし。
>>666
ある。
databaseに直接さわるところがfunctionalだとO(1)-updateはできないから、
(多分文脈的に参照のみを意味する)"query language"を関数型にしたもののことを呼ぶらしい。
# O(log(n))なら可能だし、データセットが大きければ定数みたいなものだ。

functional database:
http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?query=functional+database&action=Search

htp://www.i.kyushu-u.ac.jp/~honda/ctcs/2-2.html
htp://yuzu.ee.uec.ac.jp/natu01/PHe1/sakuhin/FP-m.html
htp://ca.meme.hokudai.ac.jp/people/tak/fp/fp-eval.html
htp://directory.google.com/Top/Computers/Programming/Languages/FP/
htp://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&c2coff=1&q=fp+OR+%28functional+programming%29+OR+fl+OR+%28function+level%29+backus&btnG=Search
htp://murl.microsoft.com/videos/cmhc/leaders/1-bac_OnDemand_150_100K_320x240Slides.htm
htp://www.cs.berkeley.edu/~aiken/pubs.html
htp://http.cs.berkeley.edu/~aiken/ftp/FL.ps
htp://www.cs.ui.ac.id/staf/wp/scientific-materials/functional/fun_faq.html
htp://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/impl/fp_lp/fp/0.html
htp://www.math.grin.edu/~rebelsky/Courses/CS302/99S/Outlines/outline.19.html
htp://www.cc.gatech.edu/data_files/classes/cs6390/readings/backus.pdf
htp://www.cc.gatech.edu/classes/AY2004/cs6390_fall/slides/fp_files/frame.htm
htp://www.iit.edu/~tc/fp-impl.ps
htp://www.iit.edu/~tc/fp.ps

christophe.deleuze.free.fr/D/fp.html
www.vorlesungen.uni-osnabrueck.de/informatik/fp01/fp01.pdf
files.chatnfiles.com/Carousel/026C/files.htm
web.mit.edu/afs/athena/astaff/project/docsourc/OldFiles/doc/unix.manual.progsupp2/07.fp/fp.PS
web.mit.edu/afs/athena/astaff/project/docsourc/OldFiles/doc/unix.manual.progsupp2/07.fp/fp.text
www.wave.co.nz/~glyn/fpuo-README.txt
www.latrobe.edu.au/philosophy/phimvt/joy/j08cnt.html
curlでwebサイトつくるとお金払わないとダメ?
そういうことはここで聞くなよ
払わなくて良いのか否か、結果だけ書け
673Aransk:04/04/04 13:47
>671
勝手にワタクシに対する質問と解釈します。(*^^)v
商用でなければ無料です。
但しJavaや.Net同様CurlRunTimeがユーザー側にも
必要ですからブラウザーだけでは駄目のようです。
返信ありがとうございます。
VBのようなもんですね。
ぶっちゃけ使えん
>>673
モバイルから使えないwebアプリは萎える
677Aransk:04/04/05 18:35
>676,674,675
恥ずかしながら既にワタクシもCurlに萎え気味です。(^_^;)
最近なんで読んだか忘れましたが、エスペラントみたいな
人工言語って600以上あるそうです。コンピュータ言語よりは
少ないが、それでも相当な数です。しかし使用者がいるのは
辛うじてエスペラントのみ、それも細々と…。
さらにエスペラントって数ある人工言語の中では最も
自然言語に近い=言語仕様が不合理、なんですって。
つまり合理性を追求した言語は現実を写像する能力に
欠けるために実用的じゃないらしい。
関数型言語スレでこんなこと言っちゃ悪いけど
細々と狭い研究分野で生き残る以外に関数型言語の
未来は無いのかも?(*^^)v



>>666-668
W3CのXQueryというのは自分で「関数型だ」って言ってるんだけど、
このスレの皆様的にはどうでしょう?
http://www.w3.org/XML/Query

以下引用
[XPath/XQuery] is a functional language. [XPath/XQuery] is built from expressions,
rather than statements.  Every construct in the language (except for the XQuery
query prolog) is an expression and expressions can be composed arbitrarily.
The result of one expression can be used as the input to any other expression,
as long as the type of the result of the former expression is compatible with the
input type of the latter expression with which it is composed. Another characteristic
of a functional language is that variables are always passed by value, and a variable's
value cannot be modified through side effects.

679デフォルトの名無しさん:04/04/05 23:32
関数言語ってなに?
Cでも関数つくれるけど?
平林雅英かよ
681デフォルトの名無しさん:04/04/06 03:36
藁藁
>680
ワラタ
683デフォルトの名無しさん:04/04/06 23:50
>>679
(純粋な関数型言語の)関数に同じ引数を渡せばいつでも同じ結果が得られる。
本来の数学の関数により近い。
(sin(π)の値は未来永劫変わらない。)
ttp://www.sampou.org/haskell/article/whyfp.html
Cでもグローバル、スタティック変数を使わないでプログラミングすれば
それは関数プログラミング?w
685デフォルトの名無しさん:04/04/07 01:02
>>683
じゃあ今現在の時間を得る関数なんて作れないね。
>>685
「同じ引数」でどうやって「今現在の時間を得る」んだよ
687厨房をからかってみる:04/04/07 01:17
>>685
ハードウェア内蔵時計は、関数言語の外側の事象だから、
そのハードの読み取りを関数型言語で書けば、別に問題ないでしょ。

じゃ、なくてぇ〜。

じゃ、オブジェクト指向言語もしくは手続き型言語なら、
ハードウェア内蔵時計なしで時間を読み取れるとかw

じゃ、なくてぇ〜。

別に、変数使わなくても、状態の変化を表現できるでしょ。
例えば、OSなりアプリが、1秒に一回、引数timeに1足して再帰していけば、
そのOSなりアプリは「時間」という概念を表現することはできるでしょ。
再帰によるスタック・オーバフローの回避には、末尾再帰最適化を使うとしてw
あと、「一秒に一回再帰する」というタイミング設定をどうやるつもりかは、知らないけどw
 まぁ、一回再帰したら、一再起秒っつう事にして、現実の1秒とは全く別の時間概念と定義して(ry

じゃ、なくてぇ〜。

関数型言語ってのは、宣言的言語を目指してて、
「プログラムを定義したら、静的にその振る舞いを把握できる」、
という建前だから、「時間」などという動的な概念を扱う必要がないのでつ(ゆんゆん

じゃ、なくてぇ〜(ry
688デフォルトの名無しさん:04/04/07 01:23
>>686
Cのtime関数って知っている?
>>684
入出力もしてはならない。

>>685
計算機の状態を引数とすれば可能。
ただし、その「計算機の状態」は当然複製できないし、してはならない。
これがIOモナドやCleanのuniqueness typingがやっていること。

# ただ、Cだって全ての関数が暗黙にWorldを取っていると考えれば関数型だ。
# そんなことを言ってもなにも得しないけれど。
>>689
とすると「関数に同じ引数を渡せばいつでも同じ結果が得られる。」でないことってあるの?
>>690
> とすると「関数に同じ引数を渡せばいつでも同じ結果が得られる。」でないことってあるの?

無い。
関数型言語でいうところの関数は定義が
「同じ引数を渡せばいつでも同じ結果が得られる」もののことだから。
>>689
 >>687の第3パラグラフ嫁
>>692
>>687本人?それとも釣られてる人?…おまえが俺の文章を読め。
第三パラグラフはまさしく複製を禁止できてない駄目な例じゃないか。
>>691
いや関数型言語でない言語の場合でも(スレ違いな質問かな?)
まったく同じ状態、全く同じ引数で違う結果が返ることなんて考えられない。
とすると、どんな言語の関数でも関数型言語でいうところの関数であるということかな。
>>694
それは誤解。
例えばtime()はC言語では関数という。
しかしtime()のどこにも状態の存在を示すものがないので、
同じ引数(void)で違う結果を返していることになる。

int f() { return (time() - time()); } は
int f() { int x = time(); return (x - x); } や
int f() { return ( (- time ()) + time ()); }
とは違う結果を返すだろう。time()が関数なら全部同じものが返る。

>>689の#は、time()をtime(world)か、time :: IO time_t のようなもの
だと考えて初めて成立する話。
# たしかCの関数引数の評価順序は言語としては規定されてなかったように思うから、
>>689の#以下は「C言語は」というより「ある処理系」とかもっとローレベル
# に落とさないと成立しないかもしれない。
ちなみにHaskell(すべてが関数)では現在時刻は IO Time という型の、
getClockTime :: IO ClockTime
という関数で取得できる。上のfは

-- ClockTimeの型はIntでないので実際にはコンパイルできない
f :: IO Int
f = do  x <- getClockTime
        y <- getClockTime
        return (x - y)
と書くことになり、順序が一つに定まる。

f = do  return (getClockTime - getClockTime)
とは書けないことが言語によって保証されている:-)

# さっきまでHaskellスレと勘違いしてた。意味がわからなかったらすまん。
ふと思ったが上のfが0以外を返すような遅い計算機はなかなかないだろうな。
つーか C は関数がファーストクラスの値じゃないから違うだろ…….
そんな話はしてないと思う。
>>694
「まったく同じ状態」などという条件を勝手に付け足してはいけません. 「同じ引数」というだけ.
関数の中からグローバル変数を参照していれば…
>>699
参照透過かどうか? というだけですね. でも関数型であることの条件自体が(ry
ループ必須?
現在時刻を返す関数を定義しようと思ったら,

(1) 現在時刻を含む引数を取るようにする.例: time = λx.x
(2) 呼び出された時の引数の値をすべて記録しておき,新しい値がきたら
  現在時刻を何らかの手段で取得して返す.既出の値だったら,その値
  に対して以前返した時刻を返す.
  例: time 1 = 11:23; ... ; time 2 = 12:35; time 1 = 11:23; time 3 = 12:36; ...

の2つしかないと思う.
(2)の場合,同じプログラムでも実行するたびに関数の定義が変化するのは
いいのだろうか.
メタ定義・・・
>>702
(1)でいいじゃん。
何回timeを呼び出したか覚えておくなんて…

> (2)の場合,同じプログラムでも実行するたびに関数の定義が変化するのは
> いいのだろうか.
最適化でえらいことになるかもね。
でも、timeはともかく、起動時のオプションの処理ではそういうことをやりたくなる。
最初にオプションを処理すれば、プログラムの以降の部分ではglobalなImmutableとして
考えられるはずだから。
頭痛い時にここ読むと悪化するな
pure functional programming langugage って楽しい?
楽しいよ
それが聞きたいのなら
Cleanに興味を覚えて落としてみたんだけど(まだ文法も読んでない)、
こいつインタプリタないのね。ちょっと残念。
Dynamicは結構面白そうだね。よく分かってないけど。
Cleanの入門サイトあったら教えてくれ〜。英語でもいいよん。


純粋関数型言語Concurent Clean
http://pc5.2ch.net/test/read.cgi/tech/1075629340/
インタプリタしかないと「コンパイラがないとヤダ」という椰子が多いのに
コンパイラしかないのを残念がるとは珍しい
インタプリタは遅いという先入観があるからな
スピード狂は見向きもしない
むしろほしいのは対話型環境
むしろほしいのは対話型環境におけるBashのようなヒストリ機能
そんなのは後からでもなんとでもなる、重要なのはデバッグだー
人気の出るプログラミング言語は会話的でなければならず、
しかも素早く立ち上がらなくちゃならない。

>>715
じゃあHaskellがC++よりも流行って無いのはどういうわけだw
>>716
スクリプト言語の間違いだな
718Aransk:04/04/12 13:49
>716
VC++6.0は速い。Haskellの対話的環境と同じくらい?
旧Delphi3.1はもっと速いが…(*^^)v
速いって…何が速いって逝ってるんだ?
720Aransk:04/04/13 13:36
>718
もちろん>715さんの「すばやく立ち上がる」ことでんがなぁ。(*^^)v
おまけにコンパイルも速い、プログラムの実行スピードも
速い、HaskellがC++より流行る訳がないことを立証しておるのです。^m^
>HaskellがC++より流行る訳がないことを立証しておるのです。^m^
C++がCより流行る訳がないことを立証しておるのです。^m^
Delphi3.1をVC++6.0より流行らせてくれw
もっと言えばF-BASICをVBよりも…
723sage:04/04/14 00:00
M$-Windowsが流行ることは?
724Aransk:04/04/14 14:58
これまで関数型言語を支えていたものの一つとして
無料の開発環境ってのがあったと思うのです。
しかし、EclipseやDelphi6.0,JBuilder,C#Builder,MsMatrixと
商用と比較して遜色ないものが次々とフリーでリリースされてます。
するといくらなんでもHug,GHaskell,ObjectiveCaml,Scheme,Clean,など
の開発環境が「見劣り」するのは否めないのではないでしょうか?
お分かりとは思いますが、ワタクシは荒らしや煽りで発言して
いる訳ではありません。関数型言語の一ファンより自らの
ポジショナリティーを批判的に考察する意味で意見を
述べておりますので、くれぐれも誤解泣き様お願いします。(*^^)v

>>724
> するといくらなんでもHug,GHaskell,ObjectiveCaml,Scheme,Clean,など
固有名詞はできるだけ正しく書いたほうが馬鹿に見えにくいのではないでしょうか。

> の開発環境が「見劣り」するのは否めないのではないでしょうか?
そうですね。

> ポジショナリティーを批判的に考察する意味で意見を
寡聞にして「ポジショナリティー」なる単語の意味を知らないのですが、
なにを批判的に考察されたいのでしょうか?
ソーカル批判の後にむしろこういう馬鹿が
増殖してしまった感じがするのは気の性でしょうか?
2chだけの現象ですか?そうですか。
開発環境は
Emacsとviがあれば問題ない
ジジイキタ━━━(゚∀゚)━━━ !!
>>726 そういう馬鹿は『「知」の欺瞞』もソーカル事件のことも知らないと思うぞ
っていうのも
>>727 なんで Emacs「と」vi なの?
っていうのも
>>728 ちょっと笑った
のも, スレとは没関係だよな.
730Aransk:04/04/15 20:20
>725
>馬鹿に見えにくいのではないでしょうか。
馬鹿に見えないと親近感が湧かないっしょ?(*^^)v
>なにを批判的に考察されたいのでしょうか?
関数型言語の社会的位置性 positionalityを批判的に
考察する必要を感じております。
つまりJavaやC++やC#など汎用言語の後を追うのでは
なく、数学的研究分野に絞り込んだ発展が望ましいのでは
ないでしょうか?
>726
>馬鹿が
これは725のことしょうか?それとも724を指しておられるのか?
それとも両方か?
あるいは極めて適正な自己言及性 self-refrentiality?( ^^) _旦~
>>730
> 関数型言語の社会的位置性 positionalityを批判的に
相変わらず不明確ですね。「社会」、「位置性」とはなんですか?
まあ、どうやら、関数型言語の「位置づけ」に関する話のようですが。

> つまりJavaやC++やC#など汎用言語の後を追うのでは
一体何が「汎用言語の後を追う」ようなことで、
どの言語、どの研究者がそのようなことをしているのでしょうか。
また、そうすべきでないことと、開発環境が「見劣り」することとの
間にはなんの関係があるのでしょうか。

> なく、数学的研究分野に絞り込んだ発展が望ましいのでは
「数学的研究分野に絞りこんだ発展」とはどのような発展でしょうか?
あなたの主張したことは、
「現在、関数型言語の開発環境は主流の言語のものと比べて「見劣り」する。
したがって、数学的研究分野に絞り込んだ発展が望ましい」
ですが…論理も考察も何もないですね。

「現在、関数型言語の開発環境は主流の言語のものと比べて「見劣り」する。
したがって、「見劣り」しないような開発環境を開発することが望ましい」
とか
「現在、関数型言語の開発環境は主流の言語のものと比べて「見劣り」する。
したがって、主流の言語と比べて開発者が増えないのはやむを得ない」
とか
「現在、関数型言語の開発環境は主流の言語のものと比べて劣っている。
したがって、主流の言語と比べて開発効率が劣っている」
とか
「現在、関数型言語の開発環境は主流の言語のものと比べて「見劣り」する。
しかし、実は関数型言語はその性質上そのような開発環境を必要としない。
なぜなら…」
と続くなら、その議論が考察に値するようなものを持っているかどうかは別としても、
理解できますが。
最大限意味をつけて読んでも、
「現在、ガソリンエンジンの開発環境は蒸気機関とくらべて見劣りする。
したがって、ガソリンエンジンは物理的研究分野に限った発展が望ましい」
というぐらいのことしか言っていない。
734Aransk:04/04/16 15:40
少しワタクシ、議論を端折り過ぎたのかも知れません。もしくは、
皆様の理解力と想像力に問題があるのかも…^m^。
これから一つ一つ積み上げて行くようにご説明します。明敏なROMには
退屈かも知れません、が、「しばし、我慢の程を」。m(__)m

ポジジョナリティーとは当然、交換可能であります。
例えばCleanが好きな人、Haskellが一番の人、Schemeマンセイの人
など、それぞれスレをこの板で立てておられる。そこでアンタなんで
その言語が好きなの?と聞いても百花繚乱の意見が飛び交うだけです。
特にJavaやVBのようなポピュラーな言語ではない、今にも消滅しそうな
仕事にはとても使えないマイナー言語に嵌るオタクぽい方々(*^^)v
(ワタクシも含め!)には言うに言われぬ?私的?事情があるでしょう。
で?この関数型言語と総称した場合は個々の言語オタとは違う
ポジショナリティーがあるはずです。時々、個々の言語オタのように
嬉しげにコードを書き散らかして悦に入る変な人?もおられますが…(-_-;)
関数型言語と総称する以上このスレでは個別関数型言語のスーパークラス
的話題を中心に議論するのがポジショナリティーではないか?
とまず一点指摘しておきたいのであります。
一つ一つ行きます。ここまでで、疑問が既にある方、又は付いて来れない方?
は、「まさか!」いらっしゃいませんよねぇ?(^_^;)
アカデミックな話はつまらん
関数型言語の専門家諸氏へ・・・

世の中には、以下の様に「関数型言語なんぞは結局使い物にならない」等と平気で言う、
物を知らない愚か者も生息しているみたいですが、
そのような輩には、どのように反論してやれば良いでしょうか?

http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/7bits/saredo
>時たま Common Lisp などという言語を使うこともあるが、
>それは単なるプロトタイピングだと割り切っている。
>Lisp で書かれたシステムはすべてプロトタイプであり、
>本物のシステムにするためにはCで書きかえなければならないと思っている。
>なぜCが優れているのかといえば、
>フォン・ノイマン型アーキテクチャにベッタリしているからである。
>つまり、私は何を隠そう、
>フォン・ノイマン型以外のコンピュータは実用にはなり得ないと
>信じているものの一人である。
737デフォルトの名無しさん:04/04/16 19:56
>>736
それはもしやKCLの作者様。。。
738736:04/04/16 20:11
こっちを引用した方が良かったか・・・

> 私のようなCプログラマにとって、
>論理型言語と関数型言語は中途半端な存在に思えてしかたがない。
萩谷先生って高山先生と似てるね。
ワロタ
しかし高山先生の純粋数学至上主義に比べて、萩谷先生の如何に謙虚なことか。
>>741
所詮「計算機落ち」だからな・・・

自分の身の程をわきまえているのだろう。
既成の意味論がその難易度の割にあまり使い物にならないってのはいいとして、
Cがどうしてノイマン型アーキテクチャのコンピュータに最適なのかな?
このエッセイでは触れられてないけど。
命令型言語の中ではポピュラーだから
>>743
>既成の意味論がその難易度の割にあまり使い物にならないってのはいいとして、

いいのか?
>>745
いいよ、おれは頭足りなくてよくわかんなかったから
何いう資格もなし(恥
>>746
2chネラーらしくないな。
もしこれが匿名で書かれたエッセーだったら、これでもかとばかりに噛み付く癖に。

よく分からなかったのなら、
「また訳の分からん奴が毒電波飛ばしているよ」
ぐらいの事を書いてみろよ。

有名人だからといって腰が引けてはいかん。
>>743
今のCPUが、まさにC言語のために設計されているからだよ
パイプラインの深化とか投機的実行といったCPUの進化のおかげで
もうCは不効率だといわれ始めているのだが…時代遅れだな。

Cは無駄に実行順序を指定するし、ポインタのエイリアシングの問題で
並列化を妨げる。現代のCPUアーキテクチャと発展のもとでは決して
効率の良い言語ではない。
依然としてCを基本としてCPUが設計され、良いアセンブラを吐かせるための
努力が最も集中しているのがCであることも事実だが、
逆に言えば、Cのアドバンテージはそれだけのことだ。

フォンノイマン型なんて関係ないし、例えフォンノイマン型に
べったりしていることと言語の実用性と一体何の関係があるのやら。
仮りにべったりが大切なら手でRISCアセンブラでも書いてろ。
馬鹿馬鹿しい。また訳の分からん奴が毒電波飛ばしているよ。
C99にはristrictポインタが入ったじゃん。
>>749
歴史を知らない馬鹿ですか?
現在のコンピュータはラムダ計算よりもチューリングマシン
が基本になっている。
チューリングマシンは操作的意味論に立脚するものなので、
操作=手続きにより計算を記述するほうが自然である。
計算を機械にやらせることが出来たのは、ひとえに、
操作的意味論=チューリングマシンによって計算が
実行できるという発見があればこそのことであるから、
ラムダ計算を機械が直接実行できない以上、
すべてのLispプログラムはCで書き換えられるべき
プロトタイプなのである。
関数をFIRST CLASSで扱える点に依存した技法はどうする?
754デフォルトの名無しさん:04/04/16 23:20
「計算可能な関数全体の集合」として 考えるとチューリング機械もラムダ計算も同一。 せめて、具体的な数学モデルを示して。
チューリングマシンもラムダ計算も等価。
しかしながら、ラムダ計算は「機械」に
直接実行させられない。


数学モデルの話じゃないんだが
一般的なCPUとスタックの形式では
ラムダ式の基礎となるクロージャ構造を簡単には作れない。
作成できたとしても
Cの関数と比べるとコストの差は歴然。
まるっきり専用命令とエミュレートの差。

これで答えになってないか?
そのクロージャはどのように実現されているのか。
いや、現状をただ示しただけだが?
759デフォルトの名無しさん:04/04/16 23:43
当方素人。Lispマシンって何?「機械」とは違うの?
現状ではどのようなラムダ計算も結局操作的手続きに
解釈し直されて機械によって実行されているのである。

したがって(ry
762デフォルトの名無しさん:04/04/16 23:55
まあ、難しい基礎理論はその辺までにして 「明日のご飯」の事だけを考えよう。チャーチ万歳。
チャーチはアメリカの生え抜きの論理学者で、
みんな嫌でもラムダマンセーしなきゃいけない事情があった。
764デフォルトの名無しさん:04/04/17 00:08
現代的にはブラウエルでしょ。後の頃のブラウエルってなんで不作なの?
Aranskは春休み終わっちゃったのかな?
>>756
それはまあ事実だが、それを理由に関数型言語を馬鹿にしている人が
オブジェクト指向言語を使っていたら、お笑い種だ。
Aranskはの不満は日本語が使えないとか
統合環境がないとかそんなのばかりだね。
だったらすなおにVC++でも使っとけと思うんだけどな。

でも使えないんでしょうね。きっと。CとかJavaも、
というかオープンソースのコードとかが読めないんだと思う。
長くて、

で、コード量の少なく見える関数型に手を出してみたわけだが、やっぱり理解できなくて、
環境とかのせいにしてるわけだ。
彼に欠落しているのはアルゴリズムや数学とかの基礎的に知識や設計能力だと思われる。
これがないとどんな言語に手をだしたって駄目。
なんか長くなったが、Schemeインタプリンタぐらいは書いて文句いいなさいってこった。
768Aransk:04/04/17 09:11
>>767
>基礎的に知識

お前に不足しているのは言語能力だな・・・
『重箱の隅』

状況:
本論からみれば些細(ささい)な相手のミスを殊更(ことさら)に指摘し、相手の意見に対して優位に立とうとする。

例:
言葉尻を捕らえる。揚げ足を取る。細かいミスを(鬼の首を取ったように) 指摘し相手が無知であると主張する。

A: 「B型の人は自己中心的です」
B: 「B形の人がみんなそう、ということもないと思うのですが」
A: 「『B形』ってなんですか? 簡単な漢字も満足に書けないような人になんやかんや言われたくないですね」
超準関数型言語Aranskの完成はまだですか?
あぁ、大 Aransk 様は何故そんなに優秀なのでありますか?
貴方様には下賎な計算機なぞ相応しくない!是非、数学板が哲学板
あたりで高尚なる議論を交わしていただきたい。>>767 偉大なる大アランスク様
になんたる暴言!もし大アランスク様がその気になればこの板に災いをもたらす事
なぞ容易な事であるぞ!歴史から学ばない 767 は逝ってよし!
大アランスク様が使えないのは言語や環境に問題があるのだ!
アランスク様、是非数学板か哲学板におこしくださいませ。
>>771
>数学板が哲学板

>>767 = 771

三つ子の魂百まで、とはこの事か。。。
773立った:04/04/17 15:50
超準関数型言語Aransk Part1
http://pc5.2ch.net/test/read.cgi/tech/1082176723/

デリダやハイデガーをなんなく読みこなし、
石板からζまでを語り尽くすAransk様。そんな神のための
専用スレです。ライプニッツの生まれ変わりである
神の言葉は貴重なため、スレを統一した方がよりよいと思い
立てました。
774デフォルトの名無しさん:04/04/18 09:46
>>749以降、元気のあるレスが無くなったな・・・
>>749乙)
やはり萩谷ブランドの威力は未だ健在か。

確かに、これが書かれたのは 1993 年の事だから、
いささか時代遅れの感が否めないというのは
当を得ている指摘だと思う。

しかし、本質的な意味において今日までに
このエッセーの主張を打ち破るような
技術的なブレークスルーは起こったのだろうか?

また、将来起こる可能性があるのだろうか?

また、もしそれが今後も起こらないようならば、
関数型言語の存在意義とは一体何なのか?
775ブレークスルー:04/04/18 11:17
分子/DNA コンピューティング!?
名前にAranskって入れるの、
やめたの?
どうしようもないヘタレだなw
>>775
萩谷センセは今それやってるね

最近、
適度に時系列的な要素がないと
人間の理解力を超えてしまうんじゃないかと考えるようになってきた。

あるは逆に人間の思考パターンが時系列的だから
ノイマン型コンピュータを作った、、ってのは言い過ぎか。
>>774
Aransk じゃないとしても Aransk なみに思い込みの激しいやつだな。
技術的なブレークスルー?いくつもあっただろ。 C では面倒って
場面を考えてみろ。だいたい萩谷センセの考えがその古いエッセイから
まったくかわってないと思ってるのか?
>だいたい萩谷センセの考えがその古いエッセイから
>まったくかわってないと思ってるのか

変わってないから、方針転換したんじゃないの?
ブレイクスルーと存在意義って関係ないじゃん。
VB、C、Javaの最近のブレイクスルーって何よ?
存在意義厨のアランスコ君
782デフォルトの名無しさん:04/04/19 01:57
>>736
関係ないけど、Kyoto Common Lispの二人の作者のうち。

湯浅先生は本当にLispマニアで、 昨年度のIPA未踏にわざわざ一般応募してまで、
Logo MindStormに ミニLisp載っけて遊んでいる^H^H^H^H我々若輩者に道を示そうとなさる、
なかなか気骨のあるLisperらしい。(いちおう学会発表したら、Steelさんが譲ってくれと言ってきたとか)

一方、萩谷先生は、一体ナニがお好きなんでしょうね。
なんか、上の7びっつ読むと、LispじゃなくてCが好きだ、とか言いながら、実際は
検証論とか定理証明の方が好きそうだったり、構成的プログラミングの研究してたり、
気が付いたらDNAコンピューティングも終わって、一体今はナニをなさっておられるのやら。。。

まったく、頭のいい人達は、ナニを考えてるのやら、常人には理解ができませんねw
783デフォルトの名無しさん:04/04/19 02:02
まさみちゃんファンクラブの臨時集会はこっちでしたか、いやいや。
>>780だいたい7bitsの文章をそのまま信じ込んで…
と続きを書こうとしたら>>782に言及されちゃった
ていうか、はぎゃ先生の文章中にすべては書かれてると思うがな。
ソフトウェアの形式的仕様記述、なんてテーマは必ずしも充分には扱ってないように見えるけど、どうだろね?
787620:04/04/19 08:26
>>782
^Hが1個足りんよ。
萩谷センセのそのエッセイは、情報科学の人間で
プログラミングができないのがあまりに多すぎることを
嘆いてるだけなんじゃないの?
実際、できもしない分際でCハッカーを「肉体労働者」とか
いうの多いでしょ。
>>788
すげー深読み・・・

ある意味、天才だな。
Bit休刊から何年立ったっけ?
791bit:04/04/19 20:35
2001年4月号をもって休刊
だから、ちょうど3年になるかな
>>778 に賛同する人、手を挙げて! (^o^)/ ハイ!
あ、bだったか。

復活祈願のスレとかなかったっけ?ないか…
>>793
2年半ぐらい前にあったかも
795デフォルトの名無しさん:04/04/20 04:30
>>788
おまえが騙されてるだけやん。
ふつー、実践に裏打ちされた理論を語れない、
なんちゃって学歴のなんちゃってSE、なんちゃってコンサルなんて、
総研だろ〜が、外資コンサルだろうが、相手にしないだろ。

だって、そんな奴と一緒に仕事したら、合理的でない、常識はずれな仕事が来るのは見え見えだから。
(つか、漏れはサイエンス系だから、そんな連中とお仕事しなきゃならん悲惨な場面には一度も遭遇した事ないけどw)

あと、プログラムできるつっても、C言語歴十ウン年(但し業務系)とか、FORTRAN77オンリーとか(中途半端なサイエンス系)、
ましてやMS系開発言語命!みたいなのは、健全な好奇心の発露に問題ありそうだから、
やっぱ引いちまう。
理系板の情報スレみてたら、最近は表示意味論の論文が少なくなって、
操作意味論のものばっかりだと書いてあった。これってどういうこと?
そう書いてあるスレに、直接質問したらどうよ。
表示的意味論などは発展途上にあった
中途半端な理論に過ぎない。
あ、そう。
仮想機械で意味論決める、つうのは、いろいろ拡張し易くて「つおい」と思うけど、
果てしなく不毛な「意味の探求」を、簡単に捨てちまうのは、いかがなものかね。

世の中には分担とか役割っつうものがあって、
不毛な試みを続けて、ついにはなんらかの宝石を発見する開拓者も必要なのではないか、
と言って見るテスト。ひとごとだからなぁ〜(笑
代数的仕様記述使って仮想機械を定義して、
その仮想機械で意味論定義するのは、
表示的意味論にカウントしてもいいですか?
それとも、やっぱ操作的意味論?(ガックシ
一般的帰納関数の理論がいくつかあるけど、
その中で一番優れているのはチューリングのものだって
ゲーデルが言ってたのは、どういう理由なんだでしょう?
情報科学って屍になる覚悟もないのに理論をやろうとするアマちゃんばっかだからな〜
操作的意味論はコンパイラを作る道具にしか見えん。
関数型言語の意味をユーザーが操作意味論で理解するというのは
本末転倒ではないだろうか…
LISPの処理系をLISPで記述するあれは何意味論になるんですか?
脳内にできるシナプスの繋がりは何意味論になるんですか?
されど論理
>>802
>情報科学って屍になる覚悟もないのに理論をやろうとするアマちゃんばっかだからな〜

始めから屍になるつもりでいる税金泥棒供よりはずっとましだと思うが。
808デフォルトの名無しさん:04/04/21 19:21
>>800
なんか似たような話を聞いた覚えが。
CAML の Category Abstract Machineとか、
Prologの Warren Abstract Machine とか。
809デフォルトの名無しさん:04/04/21 19:25
>>807
やっぱ独立法人化に合わせて、
インキュベーションの一個や二個持ってるとか、
企業領域の技術の学問的体系化とか図ってるくらいじゃないと、
ねぇ〜(ため息

あ、アカデミ領域の方で、企業領域への進出図ってる方、居ましたら、
漏れが水先案内しますので、お声をおかけくらちい。
>>798
> 表示的意味論などは発展途上にあった
> 中途半端な理論に過ぎない。

萩谷さんがそんなことを言ってたな.
811デフォルトの名無しさん:04/04/21 20:30
はぎゃ〜大先生を、〜さん呼ばわりとは、、、偉いセンセ様ですか、>>810は?
うげ。信者がいる。
おれ信者でもなんでもないけど、萩谷先生はやっぱり「先生」だなあ
「さん」とは呼ばない。高山先生だってやっぱり「先生」だ。
814デフォルトの名無しさん:04/04/21 22:10
>>812
本人降臨だったら、ヤダな〜w
財布の中に隠し持ってる、はぎゃ〜先生のコラム、見つかったらどうしよう(キャー言っちゃった♥
>814 は夢見る恥かしがりやの女子高生
>815 は「>814 は夢見る恥かしがりやの女子高生」の夢を見る
恥ずかしがりやの萩谷センセ
>>810はPlotkin先生だろ。
818デフォルトの名無しさん:04/04/22 02:12
操作的意味論こそ情報科学最大の成果の一つだろ?
他の学問へも輸出できる。
これからは言語学をやってる人も操作意味論を勉強する?
なわけないよね。操作意味論は理論ではないんだよ。
「理論」という概念が変われば、また違ってくるだろうけど。
形式化されてりゃなんでもいいよ>プログラミング言語における意味の取り扱い
ところで、表示意味論では、イベント待ち無限ループのような
停止しないプログラムの意味をどうやって与えてるのかな?

さすがにbottomにして済ませる訳にはいかないと思うのだが。
リアクティブプログラムの意味=ストリームからストリームへの関数
>>821-822
おまえら横内先生の本の最初の数ページでいいから読んでこい。
>>823
読んできました。

クロちゃん、可愛いですね。

http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9971125234
>>824
君、帰っていいから。
>>821-823のなかでは>>823のレベルが一番低そう。
>>821>>822は古典的なdomain theoryをやった後に出てくる話でしょ。
数学科でやるような基礎論と
哲学科でやるような数理論理学と
情報科学でやるようなソフトウェアサイエンスって
何がどうちがうの?
828デフォルトの名無しさん:04/04/26 22:56
viを使って慣れてきたときの事を思い出しつつ…

viでカーソルを動かすとき、HJKLでは動けるが、カーソルキーでは動けない。
そんな束縛感にひたり、ニヤリとしてしまう。
長井秀和です。

viの話。
viに慣れてきた奴は、Windowsのメモ帳でも間違えたときEsc連打しちゃう。間違いない。

viに慣れてきた奴は、秀丸のあのボタンの絵のセンスはどうにかならないものかと思っている。
間違いない。

Excelで入力をミスったときにEscを押すんじゃない、入力した内容が消えてしまうぞ、気をつけろー!!

viに慣れてきた奴は、アレを使うときCtrl-c、Ctrl-sしか知らなかったりする。間違いない。

viに慣れてきた奴は、矩形選択にちょっとあこがれている。間違いない。

829Aransk:04/04/27 18:10
またCurlネタですが、
『Curlプログラミングエッセンシャルズ』
『Curlプログラミングバイブル 』と2冊も本が
出版されてます。新しい言語で本が出版されるのは
久しぶりですよね?
但し両方ともヴァージョンが2.08で古いんです。
有償日本語版が2.08だからかな?無償英文版は既に
3.02です。従って3.0以降の機能であるMacroやRTTIなどは
上記書籍には掲載されておりません。NTTが力を入れている
らしいので伸びる可能性はありますよね。
>矩形選択
vimしらんのか( ´,_ゝ`)
>>829 こないだも聞いたんだけど curl って関数型なのか?
なんでこのスレに書き込むの?
純粋に疑問なんだが……

Haskell の本(日本語の)って出ないのかなぁ。
833デフォルトの名無しさん:04/04/29 02:08
さすが長井秀和様でございます。感服致します。
>>828
本気でワロタ
835デフォルトの名無しさん:04/04/29 07:35
意味論の話にもどるけど、
計算機科学固有の意味論は操作的なものだろ?

表示的意味は、
数学(つまり集合と写像)による、解釈だから。
>>835
>計算機科学固有の意味論は操作的なものだろ?

言いたいことが分からん。

それは
「"操作的意味論" という概念は、計算機科学という分野でしか扱わない」
という意味か?
835は操作的意味論こそ計算機科学で扱うべき意味論と言いたいのでは。
数学板にあった「自然科学を記述するのはアルゴリズムだ」ってやつみたいな。
838Aransk:04/04/29 14:23
>831,832
ご承知の通りCurlはMITのPJTから発展したものです。
MITの連中の頭は完全に関数型言語思考に染まっております。
故にCurlは関数型言語の特色をほとんどカバーしております。
例えば皆さんのお好きなObjectiveCaml、Camlが出来て
Curlが出来ないことはありません。逆は多いが…(*^^)v
Schemeの(を{に変えただけじゃありませんか?
MITの発想の貧困さ!を確かこのスレで嘲笑しておられた
人もおられたはずです。なんせ残余引数まであるんですから
して、これを関数型言語と呼ばずんばCを関数型言語と
呼ぶきや?(大笑い)
http://pc5.2ch.net/test/read.cgi/tech/1082176723/

Aransk言語の話はこちらでしてね☆
デムパ警報発令中!!!
842Aransk:04/04/30 13:05
単独スレを立てて頂くほどの有名人ではありません。
「絶滅寸前?」の関数型言語スレがワタクシには
ピッタリとフィットしております。(*^^)v
いや隔離スレだし。
このスレでは以後NGワードということで。
せっかくだからAranskさんも表示意味論と操作意味論について語ってください。
845デフォルトの名無しさん:04/04/30 20:33
>>837タソに近い感じかな?

表示的意味なんて、
数学かぶれが好むのだろうけど、
意味論的には、なんも斬新でなくない?

操作的意味こそ、計算機科学が生み出した斬新な意味論なんじゃない?




846デフォルトの名無しさん:04/04/30 23:36
RDBって、写像〜関係代数で基礎付けがされた、表示的意味論の産物じゃね?
あれ、SQLが操作的意味論で定義されてたら、RDB実装者の裁量が極端に狭くなって、今みたくRDBが隆盛を極めることはなかったんじゃねぇ?
ってな意味で、表示的意味論を軽視するのはいかがなものか、と思た。
データベース(ここではRDB)が(表示的)意味論の産物ってのは違うだろ。
SQLが、ってならまだわかるが。
表示意味論って理論以外に何か作ることに貢献したことあるの?
SQLの表示意味論がどういうものかは知らんが,同じ意味を操作意味論で
与えたからといって実装の自由度は変わらない.

どうも操作意味論に対する誤解がありそうなので,一度Plotkinの原論文を
読むことを薦める.
850デフォルトの名無しさん:04/05/01 00:41
こいつらマジっすか?
関数言語スレもアフォばっか、か。
851デフォルトの名無しさん:04/05/01 01:10
>>849って、学部生かなんか?
中身の無い罵倒しかできない操作意味論厨は帰れ。
>>848
属性文法を作った。
854デフォルトの名無しさん:04/05/01 11:17
>>852
いや、あんまり見当違いなレスを3連ちゃんで付けてきたんで、
大笑いしてるだけだけど。

RDBってコッドの正規化理論を実装したもので、
その正規化理論自体が、写像や関係代数に基礎を置いてるだろ。
だから、RDBも、SQLも、表示的意味論の代表的成果
とい言っても差し支えないだろう、つうことだよん
>>854
>差し支えない

大蟻。
856デフォルトの名無しさん:04/05/01 12:39
笑止千万。つか一行レスしかできてない時点で、アンタの負け(プププ

所詮、表示的意味論と操作的意味論なんて、対応関係付けて、等価性を示せるんだから、いちいち区別してるあんたの頭は腐ってるぞぃ〜。
両者をあえて区別したいなら、その決定的な相違を示してごらん〜(大笑

#古いネタ振ってるヤシが居るから、何かトピックでも有るのかと思ったら、このザマかよっ!
>>846
> RDBって、写像〜関係代数で基礎付けがされた、表示的意味論の産物じゃね?
> あれ、SQLが操作的意味論で定義されてたら、RDB実装者の裁量が極端に狭くなって

>>856
> 所詮、表示的意味論と操作的意味論なんて、対応関係付けて、等価性を示せる

>>846>>856は別人なのか?

まあそれはいいとして,>>856の発言はfull abstractionを示すのに苦労してる人が
聞いたら怒るぞ.
858デフォルトの名無しさん:04/05/01 13:27
怒っていただいて結構。
怒って発奮して、成果が出るなら、それもまた善き哉。

あと、>>800よんどけw
859デフォルトの名無しさん:04/05/01 13:32
あ、これは、「full abstractionを示すのに苦労している人」ってダレ?
って聞くべきところか。

あと、
> 両者をあえて区別したいなら、その決定的な相違を示してごらん〜(大笑
こっちもスルーせず回答よろしくくくくっ
860Aransk:04/05/01 14:07
操作意味論って言語学的に言えば機能意味論だよね?
ワタクシめったに2ちゃんねるでは人の意見に賛同しません。
が、コンピュータ言語に関して言うなら
>856
に載りたい。結構重いけど…大笑い。
なんか盛り上がってるようですね。
よく分かってないのですが、つまり操作意味論と表示意味論は区別不要だから、
>>846の主張
「RDB(SQL)は表示意味論の成功例。操作意味論では失敗していただろう」
は間違いだということでしょうか?
なんか、2ちゃんねらーの言葉使いをまねようとしすぎて
逆に浮きまくってる人が約一名・・・
863デフォルトの名無しさん:04/05/01 19:30
意味論の歴史からいって、
表示的意味論はべつに普通じゃんってこと、
計算機科学分野いがいでも
操作的意味論のほうが可能性がある。
864デフォルトの名無しさん:04/05/02 01:19
>>861
頭悪い人って、なんで直ぐ否定的な意見に飛びつくんだろう?!
なんで、肯定的な意見を慎重に探る訓練ができてないんだろう??!
846 名前:デフォルトの名無しさん[] 投稿日:04/04/30 23:36
RDBって、写像〜関係代数で基礎付けがされた、表示的意味論の産物じゃね?
あれ、SQLが操作的意味論で定義されてたら、RDB実装者の裁量が極端に狭くなって、今みたくRDBが隆盛を極めることはなかったんじゃねぇ?
ってな意味で、表示的意味論を軽視するのはいかがなものか、と思た。

856 名前:デフォルトの名無しさん[] 投稿日:04/05/01 12:39
笑止千万。つか一行レスしかできてない時点で、アンタの負け(プププ

所詮、表示的意味論と操作的意味論なんて、対応関係付けて、等価性を示せるんだから、いちいち区別してるあんたの頭は腐ってるぞぃ〜。
両者をあえて区別したいなら、その決定的な相違を示してごらん〜(大笑

#古いネタ振ってるヤシが居るから、何かトピックでも有るのかと思ったら、このザマかよっ!
866デフォルトの名無しさん:04/05/02 09:42
表示的意味論を、代数や写像といた数学概念を使って、システムや言語の意味論を記述するものだとすると、
RDBやSQLは、まさに関係代数や写像に基づく「正規化理論」を実装したものなので、
表示的意味論というクラスに所属している、と言える。

#実際には、RDBに関する基本的アイデアがコッドの頭の中にあって、
#それを表現するのに数学概念を駆使した、と言うことなんだろうけど。
#俺的には、やっぱRDBの概念は本質的に数学的なものだと思ってる。

他方、表示的意味論と操作的意味論の具体例(インスタンス)は、
対応関係を示して、等価性を示す事ができる。
つまり、表示的意味論に基づくシステムがあったら、
それを操作的意味論と解釈したり、
あるいは等価だが、より操作的意味論に適したシステムを示す事ができる。

上に書いたことをより具体的なに示すと、例えば、
表示的意味論を厳密に実行する仮想機械を定義して、
その仮想機械の上で操作的意味論を定義してやれば、
表示的意味論と操作的意味論を一致させることができるだろう。
その仮想機械の実行効率や、プログラマにとっての分かりやすさが良いものかどうか、
はさておいて。
逆に、気まぐれに定義された操作的意味論を、表示的意味論に戻そうとしても、
例外的な取り扱いが多くて、表示的意味論として美しくない、複雑怪奇なものになるだろう。



867866:04/05/02 10:12
ってな認識の元、乱暴にばっさり言ってしまうと。
表示的意味論は、プログラムの要求仕様、
操作的意味論は、その要求を満たす設計や実装、
に適してるんじゃねぇの?
#もちろん理想家は、二つの意味論が並立するのは面倒だから、設計や実装も表示的意味論でやりたいとか、
#プログラマーさんは、「ワタシ文系だから数学的記法なんてわかんないし、理解したくもない。」
#とか、いろいろ言うだろうけど。

すると、RDBのANSI/SPARC3層モデルで、RDBの利用インターフェースを
 1. アプリケーション層
 2. 論理層   SQLによる表示的意味論
 3. 物理層   あらかじめ作り付けのデータ格納/検索アルゴリズム実装(選択変更可能)
とゆーふーに分けて、
表示的意味論に基づく記述(2.のSQL)は、大体どこのベンダーでも共通で、ユーザの移植の手間が最小限で済むようになってて、
他方、データ格納/検索アルゴリズムやそれに対する指示は、ベンダー毎に特色を持たせる、
つうビジネスが成立しているのは、なかなか興味深い事だと思う。
(実装がクローズドだから、ビジネス足り得る。最近はオプソRDBも増えたけどねw)
これが、粘着クンへの回答。
868866:04/05/02 10:14

他方、JavaやCLRの場合、VMの操作的意味論をベンダー間で共通化して、
クラスライブラリやフレームワークのバリエーションや実装で、差別化を図る、
つうモデルなわけだが。。。アプリケーション・パーティショニングやらクラスタリングやら、
VMの操作的意味論にも、共通クラスライブラリにも抵触する部分がいろいろあって、
なんか問題解決の手段としてよろしくないのでは、とか思っちまう。
揚げ句に、RDBの時と違って、実装がオープンだから、利益をベンダーに集中させるビジネスモデルが成立しなくなっている。
まぁ、昔からオプソ文化推進派の俺にとっては、正しい方向なんだけどw

結局、広範囲で使われる汎用プログラム言語では、
表示的意味論を決めるビジネス的要求もなければ、
表示的意味論で統一する現実的見通しもない、って感じなんだろうな。
そこで、UMLの出番ですよ!UMLの一部は表示的意味論d(以下、長くなるので全部割愛)
>>866
あなたの言ってる区別は抽象レベルの違いであり、意味論が表示的か操作的
かの区別とは関係はあっても別物だろう。

操作意味論には、初期の抽象機械を用いて意味定義を与える具体的なものから、
80年代に現れ、操作意味論の復権を果たした構造操作意味論や自然意味論
(現在普通に操作意味論と言えばこれらを指す)まで、様々な抽象レベルのもの
が存在する。
表示意味論にしても同様で、プログラムを初期状態から終了状態への関数とみなす
古典的なものから、トレースを用いてより細かく実行過程を扱えるようにしたものまで
様々である。
>>866
賛成。

ただ、表示的意味論で実装というのは意味がわからない。
実装自体が一つの操作的意味を言語に与えるものだと思うし。
> #もちろん理想家は、二つの意味論が並立するのは面倒だから、設計や実装も表示的意味論でやりたいとか、
871870:04/05/02 11:55
>>869
構造操作意味論しかしらない素人だが、構造操作意味論はやはり
実装を抽象化したものだと感じるな。

>>866のJavaの例を、JavaVMの互換性=共通の操作意味論、と読めば抽象レベル
の違いということになるが、そういう文章なのだろうか。
たとえば操作意味論でselect文の意味を与える場合でも、
その内部処理過程を細かく規定する具体的なものから、
1stepで結果を与えるような抽象レベルの高いものまで
選択肢は色々だということでは。
873866:04/05/02 12:32
はぁ。抽象レベルの違い、ねぇ。。。
要求と、分析・設計の件は、仕様記述によるプログラム自動生成というIPSJ20年来の研究テーマ((c)2003 OOシンポでの伝聞)を想定して書いた文章でつ。

それはさておき、select文は明らかに表示的意味論で記述するのが正しいと(ry
どなたかWin{32,64}APIの公理意味論を書いてください。
漏れは、2ちゃねらーの糞レス応酬の公理的意味論をきぼんぬ
{} timeGetTime() { true }
{A[t/x]} x = timeGetTime() {A} where t is fresh
877Aransk:04/05/03 15:46
例えば仮にSchemeの再帰構文の実装がCのfor文だった場合、
再帰構文が表示的意味論でfor文が操作的意味論って
言いたい訳でしょうか?
これは誤りです。両者とも操作的意味論が正しい。
違いは実装レベルの問題です。極端な話、機械語も
操作的意味論の世界であります。コンピュータ言語に
おいては表示的意味論はコメントしか有り得ないのです。
と、言い切って…もういいかい?( ^^) _旦~~
デブスと遊びたいひとはこちらへ
超準関数型言語Aransk
http://pc5.2ch.net/test/read.cgi/tech/1082176723/
>>877
つか、Schemeって仮想機械使って実装する類いの言語やん、
continuation視野に入れた場合。
なんで再帰が表示的意味論になるんだろう。。。おかしい人の発言って不思議。
発達の遅れ
決まりや興味・関心の押しつけ
理解の悪さ:表面的/暗示的意味の間違った解釈を含む
>>877
意味論って「何」か、分かっているの?
デブスと遊びたいひとはこちらへ
超準関数型言語Aransk
http://pc5.2ch.net/test/read.cgi/tech/1082176723/
表示的意味論には環境というものがあって普通に副作用を扱えるという
ことが分かってない人がいるような気がする。
「再帰構文が表示的意味論」という珍説を発表した>>877さん、
珍説の誤解珍をきぼんぬぅ〜
>>883
ふ〜ん、λ-calculusの表示意味論ならそないなところだろね。
他の表示意味論でもそうなの?w
>>883
副作用ではなくて、宣言じゃないのか?
副作用使っておいて、それを「表示的意味論」と呼ぶのはおかしい。
887883:04/05/03 20:17
>>886
頼むから一冊ぐらい意味論の本読んでくれよ。
assignment(副作用)は環境の変化として表される。

副作用がないってのは環境の変化が無いんだよ。Haskellとかな。

r5rs読んだことあるか?
888デフォルトの名無しさん:04/05/03 20:24
>>887
だから、あんたの言う表示意味論はラムダ計算限定の話だろ。
いい加減に子供じみた知ったかぶりはやめとけ。
>>888
なにが知ったかぶりなんだ?

schemeや関数型言語の話をしてて
> 副作用使っておいて、それを「表示的意味論」と呼ぶのはおかしい。
っていわれたらλ計算の意味論を説明するだろ?

あほ?
あなたがどれだけいろんな意味論をしってるのか知らんが、無関係。
890デフォルトの名無しさん:04/05/03 20:51
いや、あんたは>>886以前に>>883と逝ってるんだよ。真性のアフォか。
>>833はSchemeとかの実装の話とごっちゃにしてる様だけど、
Scheme環境で副作用がどうしても必要になるのはトップレベルの話でしょ。
これは言語が抱えている作りの問題。
Schemeは表示的意味論に沿ってコードを書くこともできるというだけの事。
環境で副作用という話は、Scheme実装の歴史とか互換性とかそういう話であって、
r5rsが絶対的に正しいって事ではない。

表示的意味論の話にそういうローカルなのを持ち込むのはどうかと。
話が通じない。
>>890
>>886に対する>>887の返信なんだが?
そもそも、いままでの流れを見て
>>886のような奴がいるだろうなと思って
> 表示的意味論には環境というものがあって普通に副作用を扱えるという
> ことが分かってない人がいるような気がする。
と書いてるんだよ。

あんたが知識自慢をしたいだけの馬鹿なのはわかったからもう相手にしないよ。
893デフォルトの名無しさん:04/05/03 21:01
知識のない人って、間違いを指摘されると、謝って訂正するどころか、逆切れするから、やーねぇ〜♪
894デフォルトの名無しさん:04/05/03 21:04
一般に「表示的意味論には環境というものがあって普通に副作用を扱える」というのも、
なかなかの珍説だと思うけど、どうでしょ?
あんたの話はラムダ計算限定でしょーが。
Schemeの実装の制約だ、なんて逝ってるヤシも、変。

>>891
だれも実装の話なんかしてないが。
> Scheme環境で副作用がどうしても必要になるのはトップレベルの話でしょ。
なにいってんの?

> 環境で副作用という話は、Scheme実装の歴史とか互換性とかそういう話であって、
λ計算の意味論はそういうものですが。実装の歴史も互換性も無関係。

> r5rsが絶対的に正しいって事ではない。
表示的意味論で環境によって副作用を表現している具体例なんだが。
r5rsには欠陥があるっていう大胆な主張か?
896デフォルトの名無しさん:04/05/03 21:06
>>895開き直って参りました。あんたの話はラムダ計算限定、表示的意味論としてもアヤシイ、そんだけの奴。
>>894
勝手に一般とか付け加えて読むなよ。

関数型言語のスレでしかもschemeの話をしていて、
>>886がいるだろうと思って書いた文章なんだぞ。
898デフォルトの名無しさん:04/05/03 21:09
仮に、r5rsに誤り(ナニソレ?)やら、不充分な言語定義がいくつ見つかろうと、
世の多勢にも、計算機科学にとっても、さしたる影響は、ない。
#GLS Jr.タソごめん、電波相手だから極論言わないと伝わらないのよ
>>898
だれがそんな話をしているんだ?
900デフォルトの名無しさん:04/05/03 21:10
一般に「表示的意味論には(常に)環境というものがあって普通に副作用を扱えるという」
という珍説を発表した香具師が跳梁跋扈するスレ。
表示的意味論に副作用なんて出てこないのだが。

SQLのqueryコマンド単品なら表示的意味論で表せるが、
SQLコマンドの羅列で見れば操作的意味論の範疇。
視野が変わるというか。
もうちっとマクロ的に見ようよ。
>>900
そんなことはどこにも書かれていないんだが。
跳梁跋扈する妄想に悩まされて大変ですね。
903通りすがり:04/05/03 21:12
珍説発表記念カキコ
電波が発生してまつ。
GWの奇跡でつね。
905デフォルトの名無しさん:04/05/03 21:17
>>901
こいつもデムパ。
なんで、表示的意味論では副作用を定義できない事にしたいのか、
全くもってイミフメイ。
きっと、関数言語スレで叩かれまくって、副作用(・A・)イクナイ!!とか勝手に思い込んでるんだろうなw
>>897
Schemeは例として出ているだけであって、
わざわざ(Scheme狭義の)表示的意味論に話を
展開させる必要があるのか?
つーかScheme狭義の話だったら枕詞か何か付けろよ。
907デフォルトの名無しさん:04/05/03 21:21
珍説ダブル出現記念カキコ。

              ざわ・・・・

                       ざわ・・・・
>>906
そうだな。「λ計算の」と枕詞をつければ、
変な粘着電波にからまれてることもなかった。
# Scheme狭義ではないが。

>>886>>901といった「表示的意味論では副作用を定義できない」と
思い込んでいる人々にたいして、そんなことはないと指摘するための
書き込みだったからな…

話の展開には別に興味ない。
910デフォルトの名無しさん:04/05/03 21:47
>>909
キチガイの開き直りキタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!

おまいみたいに、いい加減な主張を二つも三つも並べて、
さんざんスレを荒らした揚げ句に、
なんとなく勝ち馬っぽくみえる奴に乗っかって捨てぜりふ吐いて逃げるような奴こそ、
人間の屑だ。さっさと死にさらせ、この基地外め
911デフォルトの名無しさん:04/05/03 21:49
なにもかも、>>909の知的情報源は2ちゃんオンリーなのが、悪いんだ〜!!!
912デフォルトの名無しさん:04/05/03 21:49
ほんと、>>909みたいな無知無学の引きこもりは、扱いに困るね
913デフォルトの名無しさん:04/05/03 21:52
2ちゃんで煽りやってる奴って、本当にヴァカだな〜w
914デフォルトの名無しさん:04/05/03 21:54
ここまでキモイ自作自演を平然とやる奴、といえば、
例のプ逝一とかAranskとか名乗ってる屑、だな。ツマンネ
915デフォルトの名無しさん:04/05/03 21:57
lightconeも。
普通、計算機の世界での「意味論」ってのは
ある言語で表現された文と、その文に関わる動作との
「結びつき方」の事を指すと思っていたのだが・・・

で、その際に各文節が文脈を持たずに
(その意味を)表現できれば「表示的」、
そうでなければ「操作的」、という区分けだと思っていたけど。。。

何かここで話されている「意味」という言葉の「意味」は
全然違うものを指しているような気がするのだが、
俺が間違っているのか?

どうして処理系固有の話(副作用云々)が出てくるんだ?
>>916
副作用(<-> 参照透明)というのは、言語に対して定められるもので、
処理系固有の話ではないと思うんだが。
918デフォルトの名無しさん:04/05/03 22:07
>>916
嗚呼、勘違い。カワイソウ系の人が、訳も判らず自己主張してるだけなんだ。
相手にするだけ時間の無駄だね
話を整理するため、まず意味論の教科書なり論文なりから定義を
引用してみるのはどうだろう。

表示意味論の創始者って誰だっけ? Scott? Strachey?
920デフォルトの名無しさん:04/05/03 22:09
>>917もカワイソウ系。
用語はきちんと調べてから使ってね!>>916-917
921デフォルトの名無しさん:04/05/03 22:10
2ちゃんで煽りやってる奴って、本当にヴァカだな〜w
922デフォルトの名無しさん:04/05/03 22:11
>>919
今までのヴァカ騒ぎは、用語も知らない素人が、空騒ぎしてただけだろ。
今更そんな事言い出しても無駄無駄無駄無駄
923デフォルトの名無しさん:04/05/03 22:13
2ちゃんで煽りやってる奴って、本当にヴァカだな〜w
924大爆笑:04/05/03 22:15
>>916-917
今の今まで、表示意味論わからずにヘタレ議論してたんですかぁ〜?
小学生なみですね
925デフォルトの名無しさん:04/05/03 22:17
「表示意味論」を理解せずに「表示意味論」と「操作意味論」の相違を議論してた
勇者の居るスレに記念カキコ
926デフォルトの名無しさん:04/05/03 22:19
>>925
勇者っつうより、たんなるドキュソだろ。
ほら、途方も無いウソつくドキュソって居るやん、いくつになっても小学生なみの奴
927デフォルトの名無しさん:04/05/03 22:23
>>926
ドキュソはドキュソだけど、あんま追い詰めるのは(・A・)イクナイ!!

ほら、「ドキュソ、猫を噛む」つうやん


えぇー、よろしいオチが付きましたようで、このへんで・・・
 ♪チャンチャカチャカチャカ、ドンドン、チャンチャカチャカチャカ、ドンドン
928883他:04/05/03 22:24
>>919
J.Stoy の "Denotational Semantics"が手元にあるので。

The Denotational Approach.

We give "semantic valuation functions", 
which map syntactic constructs
in the program to the abstrac values (numbers, truth
values, functions etc.) which they denote.  These
valuation functions are usually recursively defined:
the value denoted by a construct is specified in
terms of the values denoted by its syntactic subcom-
ponents, and it is this emphasis on the values denoted
by all these constructs that gives the approach its
name.  There may or may not be an obvious way of 
working out the results of these functions in any
particular case:  that is, the defining equatiojns may
or may not suggest a way of implementing the language.
Aranskよりある意味すげえw
参考になる人は参考にしてくれ。
931デフォルトの名無しさん:04/05/03 22:29
>>928
このスレに居る、君ら以外全員、それを遠い昔に勉強した上で、
暇つぶしに議論してるんだが、今更何を言いたいの?
ググったWebサイトから英文コピペしてる暇があったら、
ここにいる約二人の判って無いドキュソに、日本語翻訳して説明してやるwとかしたらどぅ?

あと、手元にあるというそのプレプリントなり著作の文献情報を示してゴランw
932デフォルトの名無しさん:04/05/03 22:31
手当たり次第煽っている奴がいるな・・・
933デフォルトの名無しさん:04/05/03 22:31
denotational semanticsの珍訳、珍解釈、期待アゲ
934デフォルトの名無しさん:04/05/03 22:32
何様かシランが。

>928
このスレに居る、君ら以外全員、それを遠い昔に勉強した上で、
暇つぶしに議論してるんだが、今更何を言いたいの?
ググったWebサイトから英文コピペしてる暇があったら、
ここにいる約二人の判って無いドキュソに、日本語翻訳して説明してやるwとかしたらどぅ?

あと、手元にあるというそのプレプリントなり著作の文献情報を示してゴランw
>>931
Stoyの本って結構有名だと思ってたんだが…

ISBN は 0-262-19147-4
持ってればわかるだろうが、例えば127ページの一番上の行は
be doing this for the λ-calculas itself in Chapter 8.)

電波の相手をするのは大変だなぁ。
936931:04/05/03 22:35
>>935
禿藁
937デフォルトの名無しさん:04/05/03 22:36
じゃぁ、最終章の文をコピペしてみてよw
938デフォルトの名無しさん:04/05/03 22:38
>>936
おまえは俺ではありません。
人のスレ番騙る犯罪者は、さっさと逝ってください。
>>937
君本当に病院にいった方がいいよ。

p387 Miscellaneous Matters 全文タイプはだるい。
programmers. で終わってるね。そのあとはAppendix。
>>935
そういえばStoyの本ではdomainとしてcpoでなくcomplete latticeを使ってると
聞いたんだけど、T(top element)にはどういう意味を持たせてるの?
941デフォルトの名無しさん:04/05/03 22:42
しかし、"Denotational Semantics"手元にあるという人物が、
ここまで稚拙な議論を展開するものかねぇ〜w
良くて、手元に死蔵してるだけで読んでも居ない、もしかすると隣の学科の図書室からかっぱらってきただけでしょ。

しかも、意味論程度のツマランネタで「病院」だってwチョーウケル
あんた、鬱病で何度も精神病院逝ってる人でしょ。サイコなネタをすぐ振るから、すぐあんただって判る。はやく病院戻れよw
942デフォルトの名無しさん:04/05/03 22:43
>>941
騙るくらいで犯罪者というお前もな。
つーかスレってなんだよ。レスだろw
943デフォルトの名無しさん:04/05/03 22:44
キチガイ降臨!!!!

[939]デフォルトの名無しさん<sage>
04/05/03 22:38
>>937
君本当に病院にいった方がいいよ。
[939]デフォルトの名無しさん<sage>
04/05/03 22:38
>>937
君本当に病院にいった方がいいよ。
[939]デフォルトの名無しさん<sage>
04/05/03 22:38
>>937
君本当に病院にいった方がいいよ。
[939]デフォルトの名無しさん<sage>
04/05/03 22:38
>>937
君本当に病院にいった方がいいよ。
[939]デフォルトの名無しさん<sage>
04/05/03 22:38
>>937
君本当に病院にいった方がいいよ。
[939]デフォルトの名無しさん<sage>
04/05/03 22:38
>>937
君本当に病院にいった方がいいよ。

チョーウケル。
意味論程度で精神病院突っ込まれた >>939も、大変だな〜
944デフォルトの名無しさん:04/05/03 22:45
>>936
おまえは俺ではありません。
人のスレ番騙る犯罪者は、さっさと逝ってください。
945デフォルトの名無しさん:04/05/03 22:46
サイコな>>939降臨記念カキコ
とても馬鹿らしくなった…勝手に議論してくれ。
947デフォルトの名無しさん:04/05/03 22:47
>>928
このスレに居る、君ら以外全員、それを遠い昔に勉強した上で、
暇つぶしに議論してるんだが、今更何を言いたいの?
ググったWebサイトから英文コピペしてる暇があったら、
ここにいる約二人の判って無いドキュソに、日本語翻訳して説明してやるwとかしたらどぅ?

あと、手元にあるというそのプレプリントなり著作の文献情報を示してゴランw
wを付けている奴は真性キチガイか?
949デフォルトの名無しさん:04/05/03 22:56
すると、>>948は精神病院に戻らねばなりませんね、GW明けを待たずして。
950デフォルトの名無しさん:04/05/03 22:59
>>928
このスレに居る、君ら以外全員、それを遠い昔に勉強した上で、
暇つぶしに議論してるんだが、今更何を言いたいの?
ググったWebサイトから英文コピペしてる暇があったら、
ここにいる約二人の判って無いドキュソに、
日本語翻訳して説明してやるとかしたらどぅ?

あなたに、そうする能力が無いわけないよね?頑張れ
Aranskのアホが名無しで書き込んでるんだろ。
釣られるなよ、いつくスレ無駄に使えば気が済むんだよ。
952デフォルトの名無しさん:04/05/03 23:03
>>928は、英文をタイプする能力は持って居るようだが、
残念ながら、内容を理解して、他人に説明する能力が欠けて居るらすぃ(笑

俺はどーでもいいけど、ここには約二匹のドキュソが常駐してるようだから、
さっさと説明してあげたらどうなんだろうね、他の人でもいいからさぁ(笑
953デフォルトの名無しさん:04/05/03 23:06
>>939
意味論程度のツマランネタで「病院」だってwチョーウケル
あんた、鬱病で何度も精神病院逝ってる人でしょ。
サイコなネタをすぐ振るから、すぐあんただって判る。はやく病院戻れよw
>>883>>885が全ての始まりですか?
>>885はなんでそんなに喧嘩腰なんですか?
それとも途中からAranskが乗り込んできて暴れてるだけ?
956デフォルトの名無しさん:04/05/04 01:34
>>928は、英文をタイプする能力は持って居るようだが、
残念ながら、内容を理解して、他人に説明する能力が欠けて居るらすぃ(笑

俺はどーでもいいけど、ここには約二匹のドキュソが常駐してるようだから、
さっさと説明してあげたらどうなんだろうね、他の人でもいいからさぁ(笑
957デフォルトの名無しさん
>>928
ついでだから、全文丸ごとタイプして、アップしといてくれ