関数型言語Part2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/987954395/
0357
NGNGHaskellの何処をいじったら、オブジェクト指向になるんだろう?
いまいち想像出来ないな。
0358デフォルトの名無しさん
NGNG>結局その用法が広まることはなかったようだね
なかった?
もう2002年になろうという現在においてさえも
絶版ではなく売れているらしいがな。
というかな、この本は、「数学への招待」として書かれた本なんだよ。
厳密に何かを語ると言うよりも、
多くの人に平易に数学の概念を教えようとしている本だと思うがね。
お前はどうやら遠山が数学教育に力を入れていたことは知らないようだな。
>今現在の数学体系の集合論的定義からすると
>何かが「特別」な概念であるとか「厳しい」条件である
>ということ自体古臭い言い回しになってしまってる感が
>(私には)ある。
こういう下らんことを言うな。
それも出版年は1952だ。時代を考えろ、ボケ。
0359デフォルトの名無しさん
NGNG「カントールの集合論が破壊しつくした廃墟の上に、「結合」
という一つの新しい相互関係を打ち立てるのが新しい代数学
である。」 「無限と連続」遠山啓著 より
昭和20年代の本だけど、数学の入門書でこれよりおもしろい
のないね。
0360デフォルトの名無しさん
NGNG>>結局その用法が広まることはなかったようだね
>
>なかった?
>もう2002年になろうという現在においてさえも
>絶版ではなく売れているらしいがな。
実際に使われていないな
>それも出版年は1952だ。時代を考えろ、ボケ。
?
0361デフォルトの名無しさん
NGNG>>それも出版年は1952だ。時代を考えろ、ボケ。
>?
?
君は結構もぐりだね。
その「無限と連続」を知らないなんて。
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG>その「無限と連続」を知らないなんて。
?
0364デフォルトの名無しさん
NGNG>>君は結構もぐりだね。
>>その「無限と連続」を知らないなんて。
>?
?
じゃあ、知ってたし読んだ事もあるってこと?
?だけじゃ駄目だと思うよ。
どのような点がどういう風に分からないのかを明らかにしないと。
それができなければ来ない方がいいと思うよ。
もう恒等関係の話も止めるべきだと思うし。
0365デフォルトの名無しさん
NGNGこの話にどう関係があるんだ?
0366デフォルトの名無しさん
NGNG例えばCLOSでそうじゃないOOをどうしろと言うのかね。
メンバ変数が状態以外の何を保持すると言うのかね。
へたくそとか言う問題じゃなかろ。
「状態」の塊だからこそGUIの構築がOOでやりやすいわけだし。
「状態」の塊でないコードへのポインタを切にキボンヌ。
0367デフォルトの名無しさん
NGNG2は同意ですね。なにもHaskell使わんでもとおもいますけど。
1は不同意。GUIとかいいだしたらどうにもならないけど、
そうでないなら別に問題無いとおもいます。
しばらく前に、10個ぐらい関数があって、それの合成の順序を総当たりして(nPn個)
それに無限数列食わせてドウコウってことをやる必要があったんですが、
Haskellだとすぐでした。CやFORTRANでやれと言われたら泣きます。
ま、私にとっては無いと困る「実用的」プログラムだったわけです。
なんかGUIがいるなら別の言語でそれだけすりゃいいんですし。
たしかにMLやHaskellでオフィススイート書けとかいわれたら首吊りたいかも。
0368デフォルトの名無しさん
NGNGSmalltalkのクラスのソースでも読んでみろ。
0369デフォルトの名無しさん
NGNG恒等関係ねぇ。任意の同値関係が成り立つ関係でいいんだよね。
ああ、ばかばかしい。=を一般の同値関係に使わないってのはデマだよね。
誤解が生じなければ混用していいし、されてるんだけどね。
なんか元の話の流れから馬鹿みたいにずれててウザイ。
ただのアナロジーを遊び心で記号使って表現しただけでこんなになるとはね。
Actorsとclosureの実質的な内容に話を戻すか350からのネタを引っ張るかに
しようという方向で逝きましょう。
0370デフォルトの名無しさん
NGNGそれは何か違う気が。いや、366への答えにはなってるけど。
Smalltalkのクラスはそれ自体オブジェクトだからなぁ。
ここで366が問題にしてるのはクラスとオブジェクトを峻別するタイプの
OOPLのことなんだろうな。そういう言語で実行時に作られるオブジェクトが状態の塊なのは
事実でしょ。
まあ、だとするとCLOSは例としては間違いなんだけどさ。
0371デフォルトの名無しさん
NGNG>「状態」の塊だからこそGUIの構築がOOでやりやすいわけだし。
GUIが状態の塊だってだけだろ、でOOはそれ「も」扱いやすい。
まぁ、「メンバ変数」とかのたまってるってことは、C++とかJavaくらいしか頭に無いんだろう。
いや、もしかしたら>>366が言っているのは、逐次実行型のマシンが、そもそも状態の塊だというのかもしれん。
それなら理解はできる。
SmalltalkはOOとしては、すでに1世代以上前ってきがするから、最近のOOの代表にはならないかもしれないが、
インスタンス変数にcontents以外を持たないクラスってのは、結構多かった気がする。
それでも、たとえば、Collectionクラスが#(1 2 3 4 5)っていうのを持っていて、それが「状態」だというなら、
オブジェクトすなはち状態、という意見として聞いておいてもいいがろう。
納得はしないけど。
0372371
NGNGOOの「使いドコロ」としてGUIが挙げられる事が多いけど、それがそもそもOOの誤解への第1歩って思う。
0373デフォルトの名無しさん
NGNG0374371
NGNG内部状態のあるオブジェクトの例をなにかあげて欲しい。
0375デフォルトの名無しさん
NGNG0376371
NGNG内部状態のあるオブジェクトがOOであるがゆえに内部状態を持たなくちゃ行けない、
しかし、関数型言語で同じ事をしようとした場合、内部状態を取り去ることが出来るっていう
例があるなら、知りたい。
0377デフォルトの名無しさん
NGNGほとんど全てのオブジェクト。
最も簡単なのは1ビットのメモリ。
カウンタなんかよく例に使う。
0378デフォルトの名無しさん
NGNGほうほう、じゃぁ、カウンタを例にとって、関数型言語では、どーするの?
0379デフォルトの名無しさん
NGNGあるわけがない。
0380デフォルトの名無しさん
NGNGカウンタに相当するものは(副作用のない)関数型にはない。
同じ機能を全く違う方法で実現するだけ。
0381デフォルトの名無しさん
NGNGつまり、数学知ってそうなのに
恒等関係という言葉を知らない人がいて、
ただそれはその本見れば載っているわけで、
更にいうと、その本は結構有名な本なわけで、
だからもぐりなのかなと。
ただそれだけのことなんだけど。
恒等関係の意味が判らんって言ってた人がいたような気がしたんで。
この発言はそのまま通りすぎてください。
0382デフォルトの名無しさん
NGNGこういう質問が出るってことはおまえさん関数型使わない方?
いや、OOは構わんが関数型も宜しくね。
GUIじゃないOOといえば、培風館のLispの本に例があったなぁ。
0383371
NGNG比較的向いているってことだろ。
(副作用の無い)関数型言語はそれには向いていない。
だから、OOが向いている分野のために、関数型言語にOOを取りいれてみる実験は、アリだとおもうが。
どーだろう? >>350の答えになってるだろうか?
0384デフォルトの名無しさん
NGNG恒等関係という言葉は多くの本に載っていないから
一般的な言葉ではないだろう。遠山啓の創作か?
どうでもいいが。
>任意の同値関係が成り立つ関係
この定義は分かりやすくていいね。
0385382
NGNGうまくまとまった感じかな?
でも関数型言語の利点は副作用が無いことだけじゃなくて、
数学的な感覚をそのまま持ち込めるところなんじゃないのかともおもったり。
367なんかはそういう意味での関数型の恩恵をもろに受けたってことだろうか。
とするとだ、関数型言語にOOを採り入れると言うよりOOを関数型でやってみる
実験って事だな。だとすれば面白いかも知れないな。副作用を許すと言う妥協をしなければだが。
0386371=378
NGNG関数型言語は、実際に仕事で使う場面はあんまりないです。
ただ、その前段階の調査とか、検算とか、そういうときにたまにつかいます。
0387デフォルトの名無しさん
NGNGむぅ。関数型は学生とか言語理論とかやってると絶対使うよな。
仕事(アプリケーションソフトのプログラマ?)とかでは確かに使いがたいんだろう。
新人教育するのにコストかかりすぎるだろうし。Schemeは構文覚えんのは簡単だけど使いこなすのは
とても難しいよな。Haskellなんか覚えんのも使うのも難しいし。大体、入出力があんな
有り様じゃ確かに普通は使いたくなかろう。そこに萌えるのが学生たるゆえ。
Haskellがメジャーに成る日を夢見て今日もλ式。
0388デフォルトの名無しさん
NGNGなんかカワイくてウケたのでage
0389デフォルトの名無しさん
NGNGJavaやRubyなんかで関数型プログラミングを併用するのはデバッグ効率
が向上するのでステキだよ。
# 無用な代入を避けたり、メソッドオブジェクトを引数に渡したりね。
0390デフォルトの名無しさん
NGNG一通り勉強した人間なら、
≡とでたら、同値、
isomorphismと出たら、同型、
とまずは訳してみるよな。
いきなり「同じ」とは訳さないよな。
まあ、全部読めば要するに同じってことかと
思えてくるのかもしれないけど。
0391デフォルトの名無しさん
NGNG発生したんじゃないのか?OO
逆にOOでオブジェクトを構築しておいてそのポインタを渡してやる関数ってのは
関数志向でもありOO志向でもあると思うのだが
出来上がったプログラムの動きを考える場合ooだとプログラム自体の複製が
複数できるので非効率という気がする。
仮想関数関係も関数自体のポインタで切り替えたりできるわけだから
結局は個人の好みとせいのうじゃないの?
oo否定派だけど低レベルとのクッションとして4世代くらいの継承までは
まぁ許容かなってかんがえている。
もっともそうでないとCOMとかも使えないし
0392デフォルトの名無しさん
NGNG>発生したんじゃないのか?OO
こういうのって、どの人のOOの捉え方を反映してて、おもしろいよね。
0393デフォルトの名無しさん
NGNGオブジェクト指向志向?
0394392
NGNG0395デフォルトの名無しさん
NGNGそう言うことじゃなくて、
やっぱりどの分野にも良書といわれるものがあって、
それを読んでいないで何かをいうのはどうかなって。
つまり、良書とされているものを読まずに
一般的でないとかいうことで知らないことが免責されるかのようなことは、
どうかなと思ったんですよ。
だからもぐりって言ってみたんです。
0396デフォルトの名無しさん
NGNGそうは言えある本を必ず学び準拠するべき「良書」と
決めてしまうのは単なる権威主義とでもいうべきものであって、
過去の業績を踏襲しつつも常に反省を忘れないことが重要な
学問にあってそれは望ましいことではない。
それぞれ多種多様な方法で学んだ者々がそろって
時には相対する立場にたって議論をすることが学問の進展や、
個人の理解の促進に貢献すると思われる。ある一つの本を読んでおらず、
そしてそれ故その本における定義や方法を知らないという理由で
議論を拒み非難の対象とするのはいかにも「幼稚」であり、また
「非学術的」な行いではないだろうか。これが個人に対してでなく
派閥間で生じれば互いに意思疎通のない「宗教」とでもいうものにでも
発展しよう。第一そのような事を行えば、どちらが「優れて」いるかなど
永遠に知りえない。常に相手の考えを理性的に判断する態度が
学問には必要だろう。
また、常に進展してゆく学問においてその書物の蓄積は膨大になる。
幸いなことに科学的学問はその結論に一定の収束を見せ、
誰が語ったかは問題にならない。その結果、過去の良書のエッセンスを
取り入れつつ更に改良をほどこし時には新しい結果を盛り込んだ
書物が次々と出版されている。よって過去に良書であった本に
大きく捕われる事はあるまい。ユークリッドの原論は今でも良書と
呼ばれはするがその業績は多くの本に取り入れられており、
我々が顧みることはあまりない。時代の変遷、多種多様な環境の中様々な
方法で勉強するものがおろう。己のたどった過程を相手も
たどるとは限るまい。そのような人々を「もぐり」と言ってしまうのは
いかにも度量が小さいといえよう。また相手もそう思っているやも知れぬ。
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG>逆にOOでオブジェクトを構築しておいてそのポインタを渡してやる関数ってのは
>関数志向でもありOO志向でもあると思うのだが
値同値と参照同値の問題はどうなるの?
参照透過性を失ってしまえばもはや関数型とは呼べないような・・・・
「-3」を表現するのに整数クラスのインスタンス「-3」を一意に作って
それへのポインタを使うだけにすると言うなら参照同値=値同値と言うことになるのかな?
関数言語処理系の作成者とかなら必要なんだろうけど、普通のプログラミング
の時にそんな事はしてられないんじゃ? というか、Cで関数指向するくらいならさっさとMLなり
Haskellなりを使うほうがストレスに成らないような。
0399仕様書無しさん
NGNG0400デフォルトの名無しさん
NGNGimmutableなオブジェクトを作ったり使ったりしたことない人?
0401デフォルトの名無しさん
NGNG激しく同意。ブルバキだよな、やっぱり。
あ、でも基礎論の当たりちょこっとうさん臭かったりするんだよな。
正則性公理のあたりとか。
つうか、最近の学生は遠山先生の本なんかよんでないだろ。
0402デフォルトの名無しさん
NGNGブルバキはもっとだろ。
0403デフォルトの名無しさん
NGNGいや、良書なのになぁ。
でも、ずっと上のほうにあるような言われ方する程遠山センセの本が読まれているわけもなく。
0404デフォルトの名無しさん
NGNGつか、そんな大仰な話をしているのではなくて、
なんというか、恒等関係なんて言葉はないというようなことを
言っている人がいたので、
そのことでなんと言うかあげつらっている人がいたようにも見えたので、
ただまあそう言ってみたんだけど。
例えば、関数型言語では、武市さんの本なんかは、
必読とまでは言わないような気もするけど、
やっぱ一通り読んでおかないと議論に参加するのはどうかなとも思うし。
まあそんなようなことを言いたいんだけど。
0405デフォルトの名無しさん
NGNG得るものが少なすぎます。
0406デフォルトの名無しさん
NGNG本を読んだかどうかで決めるなら、スレタイトルは
「武市ってどうよ?」とかにするべきだな。
0407391
NGNG折がいいたいのは
クラス型=クラス変数文メンバー関数の本体をメモリに展開する
関数型=作成済み関数のポインタのみを扱う
というのがコンパイラ自体の違いだから使いどころとしてクラス型を使っても
全体的に関数型にできるということ。
あとローテクでいうならば関数型とOOの違いは関数に対してBレジスタなりが
スタックフレームになっているかなっていないかということなんじゃないの?
あとOOじゃないと保持状態が作れないというけれど
レコード型変数で保持してポインタ渡しにするならば
関数自体はコンパイル時に直接生成されるけれど変数は動的に作れるから
プログラムはOOではないけれど機能的には同じで多分実行時メモリは小さい。
これは少なくとも>>376への答えにはなると思う。
例えば>>378はカウンタを例に出しているが
カウンタ値は変数なりファイルなり、あるいは名称や最終更新時間をもったレコードだとして
それがデータベースやファイル、変数やリストになっているとすれば
関数型で先頭アドレスと処理内容を渡してやれば作業はできるし
コードも複雑化しない
OOの場合は実装コードもクラスに記述するか継承するので
パラメータ無しのメンバー関数が作られるが実質的にはスタックフレームが暗黙的に形成されていて
Windowsの場合コントロールごとのステータスと挙動をOOで記述するとわかりやすい気がするが
レコード型の記述と関数型のほうが効率は良い。
実際OOでもソースの中低レベルはそうなっているはず(Ex.DirectXのEnum関係とか)
ということでどう?
0408407
NGNGできるのとやらないのは違うと思う。
別にレコード参照型で新しいレコードを生成するならば
学者さんいわくところの”関数型”になると思う。
ポインタは保存場所なんだから
プログラマーが節約のために同じところにするかどうかというだけの話
とりあえず折がいっているのはOOに対する関数型
どうしてもProcedure型の関数がいやだというなせば
関数の返り値が新しいレコードのインデックスかポインタになれば
へっぽこがくしゃさんでも気が済むでしょう。
ようは元を残してコピーを作るか、上書きするかってことだと思うよ。−−参照透過性
極端をいうならばアキュームレータの中身はかわるよね。
AccA+AccBをコンピューターでやる場合
結果はAccAに入る
この大原則がある上で参照透過性うんぬんというのは単なる無知とはいえないか?
言語というからには”翻訳”や”変換”があるわけで
卓上でぐだぐだいって単位が取れたり本をだせたとしても
翻訳結果や変換結果を無視してたら意味がない
0409デフォルトの名無しさん
NGNGなんていうか、そういうことを言いたいんじゃないんだよね。
恒等関係を知らないなら知らないと言えばいい訳で、
そんな言葉はないとかいうのはおかしいなって思っただけなんだけど。
知ったかぶりはよくないんじゃないかって思うんだよね。
その知らないことについて議論に参加するのも何だか滑稽だし。
0410デフォルトの名無しさん
NGNG>極端をいうならばアキュームレータの中身はかわるよね。
>AccA+AccBをコンピューターでやる場合
>結果はAccAに入る
>この大原則がある上で参照透過性うんぬんというのは単なる無知とはいえないか?
>言語というからには”翻訳”や”変換”があるわけで
>卓上でぐだぐだいって単位が取れたり本をだせたとしても
>翻訳結果や変換結果を無視してたら意味がない
それは、ひとつの見識として納得のいくものですけど。
でも、高級言語の価値は低水準の実装を隠すところにありますよね?
関数型言語の良さっていうのは、手続き型高級言語がなんだかんだ言っ
てアセンブラにおける常套句を言語構造に翻案したに過ぎないところ
とは別次元のものだと思うんですよね。
手続き型高級言語がメモリやI/Oのアクセスと制御構造によって成り
立っているのに対して、関数型言語は意味を定義する。その違いは
syntax sugarではないと思うんだけどね。
0411デフォルトの名無しさん
NGNG「OOじゃないと保持状態が作れないというけれど」
え、誰が言ったの、そんな事。 (驚愕
0412デフォルトの名無しさん
NGNG参照の透明性は
「変数の上書きをしない」ってことよりも、
「同一表現式は同一の値を表す」ことのほうが本質だと思うが。
つまり、同じ変数は常に同じ値を表すだけでなく、
同じ関数に同じ引数を与えてやると、同じ返り値が返ってくるってことが大事。
0413デフォルトの名無しさん
NGNGある用語が正しいか或いは正しい用法かどうかなど
個々の信念の問題であって知識の問題ではあるまい。
もちろん正しい用法においてその言葉は「ある」のであって
そうでなければ「ない」言葉を使っていることになる。
流行語などに対して文句を付けるのをたまに聞くだろう?
「ない」という主張が「おかしい」などということは全くない。
そしてこれは概念を理解しているかどうか、すなわちその事を
知っているかどうかとはまた別問題だ。その点で
「知ったかぶり」という言葉で表される事態では全くない。
この「恒等関係」にしてもその内容からすれば「汎同値関係」とでも
名づけたほうがよっぽどましだろう(と私は思う)。あなたは
そのような言葉は「ない」と主張するかも知れないが。
専門用語でこの様なことはよく起こる。それは研究者同士の
交流が希薄だったり或いは稀に対立したりするからだ。
その場合相手の用法を全く知らないことが多い。
それは「知らないならば議論に参加する資格がない」などと
済まされる問題ではなく、一々確認を必要とする。
最終的な用語についても歩み寄りがない場合もある。
2chでの様に喧嘩腰の人はまずいないが。
0414デフォルトの名無しさん
NGNG409が問題にしているのは用語の正誤じゃないでしょ。
はっきりいって、「そのような用語はない」はすごく強い言明だよ。
よっぽど確信がないかぎり、使うべきものじゃないと思うが。
まあ、2chみたいな場で
「これを読んでない奴は議論に参加するな」ってのも
ちょっと乱暴だと思うけど。
0415376>>391
NGNGそもそもCPUに近いところでの動作の話になると、たいていの言語は、
コンパイル後のコードやVMの動作の話になって、その言語の持つ特徴
が、どっかいっちゃうから。
>あとOOじゃないと保持状態が作れないというけれど
おれは>>376ではそんなこと書いてない。
OOであるがゆえに状態を持っている→関数型で書きなおすと状態がなくなってすっきり
っていう例があるのか?って書いたんだ。>>411には通じてるね。
だから答えにはなってないんだよ。
俺があと言いたい事は>>410が書いてるのとだいたい一緒。
0417デフォルトの名無しさん
NGNG>「そのような用語はない」
これは用例がないことを意味するのではなく
それを誤りであるとする言明。用例があるのは
用例に対する応答である以上当然ある。この発言が
発言者の言語に関する正誤感覚に基づいているのは
言うまでもない。この点においてもちろん「すごく強い言明」で
あり、強い信念を感じとれる。この時どの程度多数の支持が
あるかは(発言者に影響しはするが)、特に妥当性に関しての信念ならば
多くの発言者は別問題と考えるだろう。
0418デフォルトの名無しさん
NGNGんー、議論に参加するなって言うか、
知ったかで参加するなって言うことなんだけど。
知らないということを前提にして
聞く意味も込めて参加するということならば
2chを問わずかまわないと思ってるけど。
0419デフォルトの名無しさん
NGNG>>418か?おまえは神か?
0421デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGわかった、わかった、知ったかは良くないよ。それは事実だよ。
あなたの主張は認めるよ。
だから関数型言語の理解・研究・発展に貢献する発言をしてください。
あるいは関数型言語のここがダメとかさ。
0424デフォルトの名無しさん
NGNG君もね
0425デフォルトの名無しさん
NGNG言うことが大げさ
0426age
NGNGhttp://anny.kir.jp/bbs-a/imgboard.cgi
モロダシ画像、チャイルドポルノ、バンバンアップ!!
おめ@丸見え!!
他では有料のアノ画像常時アップ!!
0427デフォルトの名無しさん
NGNG要らない印象があるのね。手続き型言語だと、UnitTestを使って定義域での動
作と定義域外での動作をきちんと検証しないと気が済まない(テスト中毒って
奴ですか)。だけど、Schemeとか使っているときは、テストとプログラミング
が一体化しているというか、わざわざテスト用のコードを書いたりしないな。
まだ経験が浅いからかしら。それとも関数型言語だからかしら。
0428デフォルトの名無しさん
NGNGテストが問題になるような規模のコードを書かない/書けないから
0429デフォルトの名無しさん
NGNGきちんと検証するのが、ごくごくあたりまえです。
むしろ、きちんと検証しないとあとがたいへん。
でもしない人も結構多くて、そういうやつがプロジェクトの足を引っ張るんだよなぁ…
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG本屋で見比べて、萩谷昌巳 著「関数プログラミング」
買っちゃいました!
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG>テストが問題になるような規模
ってどれぐらい?
0435デフォルトの名無しさん
NGNG宣言的プログラミングが良く似合う。
ところでどっかに書いてあったProlog++, Mercury てナニ?
0436デフォルトの名無しさん
NGNGProlog スレにでてたね。
Mercury は
http://www.cs.mu.oz.au/research/mercury/
> Mercury is a new logic/functional programming language
ということで (FAQ for comp.lang.functional にも載ってるし)
このスレ向きですかね。
0437デフォルトの名無しさん
NGNG俺も訊きたい。
0438デフォルトの名無しさん
NGNG>>テストが問題になるような規模
>ってどれぐらい?
関数言語厨房が書ける最大の行数+1
0439デフォルトの名無しさん
NGNGおいおい、一行か?
0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGHoare Logic とか Curry-Howard isomorphism のあたりかな?
プログラム検証を支援する仕組みとして、
・型システムの導入とか、
・事前条件/事後条件の記述(Eiffel)とか、
・形式的仕様記述言語による仕様記述とか、
いろいろありますよね。
関数型言語だと、どうして「検証するまでもなく」って感じるのかな?
副作用が少なくて、見通しがよいからかな?
0442デフォルトの名無しさん
NGNG高階関数 と 高階論理 の (類似性) を
誰か教えて頂けないでしょうか?
あとついでに、本スレの流れでいうと、
リフレクション(特にjava.lang.reflect) と 高階関数 って、
何か関係あるんでしょうか、教えて下さい.
0443デフォルトの名無しさん
NGNG>高階関数 と 高階論理 の (類似性) を誰か教えて頂けないでしょうか?
はぁ?ちゃんとわかるように質問しろよ。
>リフレクション(特にjava.lang.reflect) と 高階関数 って、
関係無い。
0444442
NGNG>>442
>2.リフレクション(特にjava.lang.reflect) と 高階関数 って、
> 何か関係あるんでしょうか、教えて下さい.
Javaで高階関数を作れないか、という話題がありました。この話題を考えるに、
Javaでは、メソッドの引数や戻り値に、メソッドを指定する事ができないので、
(1)Javaのリフレクション機能(java.lang.reflect.*)を使って、Methodクラスを返すとか、
(2)事前に定義済みの内部クラス・インスタンスを返すとか、
(3)動的にクラスを生成する拡張機能(jakarta.apache.org/bcel や Java上の言語処理系)を使う、
といった答えしか思いつきませんでした.
ラムダ計算やコンビネータ論理が、プログラムの形式的モデルとして有効であるならば、
高階関数ってのは、オブジェクト指向言語実装系において、どのような意味を持つのでしょうか、
あるいは、オブジェクト指向言語を、ラムダ計算やコンビネータ論理でモデル化するのは
適切なのでしょうか?
かなりいい加減に、
実は「リフレクション」あたりに対応させる事ができるのではないだろーか、
と思いつき、先の質問2. をカキコいたしました。
0445デフォルトの名無しさん
NGNGpizzaでfirst-class functionsだべさ
参考にするべさ
これはinner classとしてJavaにあるということになっとるべさ
0446444
NGNG# (Generic Java や、JCP14: Adding Generic Types to the Java の祖先ですか.)
結局、この問題は、
「Javaでは first-class functionsの代わりに inner classが実装されているから、
それを使えば高階関数を作れる」
という回答でよろしいでしょうか?
# オブジェクト指向の形式モデルなんて言い出したのヴァカみたい>>俺
0447プロジェクト・リーダー
NGNGお教え下さい。
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG>高階関数 と 高階論理 の (類似性) を
高階論理では述語だけでなく、述語に関する述語や、さらにその上の述語...
などが記述できます。さて、集合A上の述語PというのはPの特性関数
X_P:A->boolと同一視できるので、A上の述語の述語が書けるというのは
(A->bool)->boolという高階関数が書けると言いかえられます。
というように結びつけられると思われ。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGhttp://pvs.csl.sri.com/
の他にどのようなものがあるのでしょうか?
ちなみにPVSはマスターするのに最低6ヵ月必要らしいの
ですが、他のものもやはりそれぐらいかかるものですか?
0453デフォルトの名無しさん
NGNG"Why Functional Programming Matters"の日本語訳
http://www.sampou.org/haskell/article/whyfp.html
0454デフォルトの名無しさん
NGNG検証とは違うけどCafeOBJも面白いよ。
0455
NGNGそれなかなかいいね。
0456デフォルトの名無しさん
NGNGhttp://www.towelrecords.com/varitext/001.html
■ このスレッドは過去ログ倉庫に格納されています