関数型言語Part3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG関数型言語Part2
http://pc3.2ch.net/test/read.cgi/tech/1007387924/
0153デフォルトの名無しさん
NGNG一行に要約して下さい。
0154デフォルトの名無しさん
NGNGLispでは関数が擬似ファーストクラスだということなんだが。
ファーストクラスが関係ないとなると、
関数型言語の輪郭は益々ぼやける。
0155デフォルトの名無しさん
NGNG必要条件だけど充分条件じゃないってこと。
0156デフォルトの名無しさん
NGNG関数がファーストクラスでないと関数型言語とはいえないということになりますか?
0157デフォルトの名無しさん
NGNG引用開始
関数プログラミングとはプログラミングを数学的な活動として
とらえる考え方であり、本書ではそれを特定のプログラミング言語
にはよらず数学の表記法を用いて紹介する。
引用終わり
0158デフォルトの名無しさん
NGNG関数型言語の定義はどうなってますか?
0159デフォルトの名無しさん
NGNG上記の本では特に定義されていません。
Miranda、MLなどが関数型言語と考えられているようです。
bit 1999 3月号 で武市先生による関数プログラミングの解説が
あります。私見ですが、数学的活動ととらえる関数プログラミングを
支援する機能をもつものが関数型言語ではないでしょうか。
0160デフォルトの名無しさん
NGNGそれを支援するのが関数型言語だと認識してる。
命令型言語でも注意すれば関数型っぽいことできるけど、Rubyを関数型言語とは言わないしね。
あなたが関数型言語だと思うものが関数型言語です。
ただし他人の同意を得られるとは限りません。
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG何だと思う?
0163デフォルトの名無しさん
NGNGだからむしろPROLOGみたいな宣言型とかOPALのような代数型の方が数学っぽい。
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG引数と返り値に関係づけをつくることができて
それが数学ぽかったり、見たまんまだとよりいい。
で、入出力にはそんな関係づけはないと。
0167デフォルトの名無しさん
NGNGなんなんだ?おれの予想はRuby厨、Java厨、boost厨のどれかだと
読んでるけどあたりですか?
0168デフォルトの名無しさん
NGNG計算の単位が全て関数であることが重要なんであって、
数学らしさとは必ずしも一致してないような。
0169デフォルトの名無しさん
NGNGアルゴリズムの申請がみとめられるような言語、はまだですか?
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGhttp://science.2ch.net/test/read.cgi/rikei/1046173479/
0172デフォルトの名無しさん
NGNGへ
0173デフォルトの名無しさん
NGNGホントに知りたいならcomp.lang.functionalでも見てた方がよいかと
0174デフォルトの名無しさん
NGNGラムダ計算とかさあ
0175デフォルトの名無しさん
NGNGp152より引用
引用開始
関数的プログラミング(というプログラミング.スタイル)を
具現化したプログラミング言語を、関数型言語という。
引用終わり
0176デフォルトの名無しさん
NGNGp8より引用
引用開始
プログラムによる計算過程は、通常の計算機のハードウェアの仕組みと
独立して考えることもできる。関数型言語(functional language)、
あるいは作用型言語(applicative language)とよばれるものは、
数学における関数(function)の適用(application)によって
アルゴリズムを表現しようとするものである。
引用終わり
0177デフォルトの名無しさん
NGNGスキルを要するし、それにかかるお金も大きいほうなのだから。
0178デフォルトの名無しさん
NGNG「使いこなす」というのがどの程度なのかわからないけれども。
プログラミングを楽しむ程度なら高校数学の知識と推論能力
があれば十分だと思うよ。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG教育用といえば
0181デフォルトの名無しさん
NGNG現実はそうかもね。高校はBasicかぁ。
Schemeの方が絶対に良いと思う。
0182デフォルトの名無しさん
NGNG教育のためなのか?就職のためなのか?
ということなんでしょうね。
0183デフォルトの名無しさん
NGNGを見て思ったのですが「Lispのユニークさ」の2番、3番、5番、6番
の条件が満たされていれば、関数型言語?
0185デフォルトの名無しさん
NGNGLispのユニークさ
1, 条件式。
2. 関数型。
Lispでは関数は整数や文字列と同じようなデータ型のひとつだ。
リテラル表記を持ち、変数に代入できて、引数として渡せる、というようなことだ。
3. 再帰。
4. 動的型付け。
Lispでは全ての変数は実質的にポインタだ。変数ではなく値の方に型が付いており、
代入や束縛は実質的にポインタのコピーで行われ、ポインタが指されるものには作用しない。
5. ガベージコレクション。
6. 式でプログラムが構成されること。
Lispプログラムは式の木であり、それぞれの式が値を返す。
これはFortranとそれを引き継ぐ多くの言語とは対照的だ。それらの言語は式と文を区別している。
7. シンボル型。
シンボルは実質的にはハッシュテーブルに格納された文字列へのポインタである。
これによって、文字をひとつひとつ比較しないでもポインタの比較だけで済む。
8.シンボルと定数の木によってコードを表現すること。
9. 言語の全てが常に在ること。
読み込み時、コンパイル時、実行時が明確に分離したステップになっていない。
読み込み時にコンパイルしてコードを走らせることもできるし、
コンパイル時にコードを読んだり走らせたりすることもできるし、
実行時にコードを読んだりコンパイルしたりすることができる。
0186デフォルトの名無しさん
NGNGhttp://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は「高階」関数 (つまり、関数を操作する関数を、操作する関数) を利用します。
0187デフォルトの名無しさん
NGNG関数プログラミングのプログラマーからも、一貫性のある意見を得ることは困難です。
群盲象をなでる、という言葉がぴったりです。
…というあたりも、>>145の状況をよく表している様な.....
0188デフォルトの名無しさん
NGNGそのうち誰かがC言語でも関数型プログラミングは出来る。
とか言ってくれないかな?オブジェクト指向の時のように・・・・
0189デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGSchemeをやって、Cに戻ったら以前よりうまくプログラムを書ける
ようになったって話もあるようだよ。
0192デフォルトの名無しさん
NGNGできるよ。
効率性も含めて犠牲になる部分が多いが。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG君と僕にはそれはCだったということさ
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG事業目的に使えるかどうかならば、F#でも勉強しとけ
0198デフォルトの名無しさん
NGNG0199名無しさん@Emacs
NGNGおまいらに関数型言語は無用だ。
0200デフォルトの名無しさん
NGNG関数型言語は無用
関数型言語は無用
関数型言語は無用
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGでも、日本語が読めるなら一度は読んでおいて損はないだろう。表現が豊かになる。
関数型言語も。いろいろとチャレンジしてみるのは良いことだと思うよ。
0203デフォルトの名無しさん
NGNG当然インラインアセンブラとかもOKで。C++っていうのは
なしね。
0204デフォルトの名無しさん
NGNG関数型言語なりのそれに代わりうるものがあれば
なにもいらないんだけど<インラインアセンブラ。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG前にちらっとみただけなんだけど、あるWebサイトに
MLでOSとそれに最適化されたツール群を作るって言う
研究が乗ってた。どうも見た感じだとコンパイラの
製作(そのために言語の拡張をしてたのかどうかは分からない)
で撃沈してた模様。UNIX/Cに変わりうるようなパラダイムが
関数型言語の方面から出てくるのかなあなんて思ったりも
してたけど、実際は難しいみたいね。
0207デフォルトの名無しさん
NGNG分かってにゃい証拠ハッケツ
0208デフォルトの名無しさん
NGNG20年前にタイム・スリップして、TI Schemeマシンとか、Lispマシンを買ってきて貰いたまえ
0209デフォルトの名無しさん
NGNGBSD UNIXって、Lisp研究用のブートローダだったと暴言する人も居たとか居ないとか・・・
0210デフォルトの名無しさん
NGNGcategorical abstract machineですか。
なにやらえらい難しそうですねえ。
いつも思うんだけど、citeseerなんかを眺めていると、
実装レベルとは関係無しに理論的にはどんどん進んで
いるんだなあと実感します。頭のいい人は凄いね、ホント。
>>207
分かってたらこんなアホなこときかないって
>>208
Lispマシンというのは実はUNIXよりもあまりにも技術的に進んで
いたがために、廃れてしまったのですかねえ。よく知らないですが。
まあUNIXならどんなヘタレでも使えるからね。こういうのも悪くないね。
0211デフォルトの名無しさん
NGNGWindowsやOSXにしても、OSの枠組みとしては
UIの話を抜けば、4.2BSDからは何も進歩してないように見えるね。
そもそも進歩する素地があったとしても金にならなそう。。。
食えない分野の代名詞として理論物理というのがよく言われるけど
もしかして計算機科学の人もそうなんでしょうか?理論に裏打ちされた
技術って誰も興味なさそうですよね。。。
0212デフォルトの名無しさん
NGNG>まあUNIXならどんなヘタレでも使えるからね。
Java と Lisp みたいなもんかも?
0213デフォルトの名無しさん
NGNGでもないよ.最近,形式的表明をなんとかして
ソフトウェア工学に応用しようと頑張ってる.
ミサイルの制御系とか,バグの無いコードのために
従来は無茶苦茶な工数を掛けていたのを,形式的
表明の助けを借りて軽減しよう,という感じらしい.
OSX は漏れ,知らんけど,Windows は COM とか
でかい進歩と思うが?
>>210
廃れた理由は,汎用ワークステーションの性能向上が
激しくて,ハードウェアで実現するよりソフトでやった
ほうが断然イイじゃん,ってことになっちまったから.
でも聞くところによると,NTTのアレとかは結構高性能だった
とかいうことだけどどうなんだろ.
絶対的に間違ったアプローチだったということはない,
というのは AS/400 が証明してる(と漏れは思う)
タグ付きアーキテクチャの真似とかをソフトでやるには
限界あるもんね.
>>209
BSD のカーネルイメージのファイル名が vmunix なのは
VM が実装されたためで,なんで実装したかっていうと,
メモリ空間食いまくりの Lisp を動かすためだった,とか
いう伝説があったりとかね.
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG・・・って昔どこかで聞いたような・・・。
ぐぐったら見つかったのはコレ↓だった。
ttp://www.namazu.org/~satoru/programming/sicp.html
0217デフォルトの名無しさん
NGNGもはやラムダは円マークだろ
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG↑総本山はココの山中にある,λ文字山算法寺と簡約神宮で,
修行を終えると単位互換制度により
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 とλ騎士団の徽章が近くに
存在する状態は危険である.
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGλティディ・ベアはSUNのティディ・ベアと互換性があるのか?
λTシャツを着ると、アポー信者や2ちゃねらーと、勘違いされるのではないか?
よく検討してから、購入させて頂きます。
0224デフォルトの名無しさん
NGNG・
・
・
MITで鳴らした俺達特攻部隊は………ダメだ思いつかないや.
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228C maga
NGNG0229デフォルトの名無しさん
NGNG>俺は、数式処理系(Macsyma〜Mathematica) と 命題処理系(ML?)に
>類似性を感じて、興味を持っていたので、乱入大歓迎。
という意見があったけど、実際の所どうよ?
雰囲気は確かに似ている様な気がせんでもないが
0230デフォルトの名無しさん
NGNGほんとですか?ならボクにもやれそう....
0231デフォルトの名無しさん
NGNGどうよ、と言われてもなー。
どっちも派生元である原始言語はLISPなんだよね。
類似性ってのはそういう事かと。
0232デフォルトの名無しさん
NGNG違うってばよ。
Cマガの記事はたまに素人が書いてるので鵜呑みにできない。
「関数型言語*風*にも書ける」と書いてあるなら、あながち
間違いとは言えないけど、正解では絶対にない。
点数付けるなら、100点満点中25点ぐらい。
これはね、
「Cでもオブジェクト指向(風に書くことが)できる」
と言ってるのと同じ。
C言語と、関数型言語として洗練された構文と意味論を持つ
専用言語では、記述の幅からして比較にならない。
0233デフォルトの名無しさん
NGNGSML(Standerd) 演習
http://a414s1.it.nanzan-u.ac.jp/smlbook/smlwww/
初級ML講座
http://nt-p.net/adx/e/ml/mlkouza.html
C言語の時と同じ使い方をしようとしても、有り難味が判らないんじゃないかな。
論理学とか数学の知識は多少でもあった方がいい。
0234アシュル ◆adhRKFl5jU
NGNG関数型言語の共通コンパイラバックエンドを作ろうというプロジェクトなどが
計画されたことなどあるんでしょうか?聞いたことないですが。
0235デフォルトの名無しさん
NGNGlispだと最適化がやりやすいため。
0236アシュル ◆adhRKFl5jU
NGNG0237デフォルトの名無しさん
NGNG....
0238名無しさん@Emacs
NGNGACL以外で、まともな最適化まで考えられてる
処理系とかあるの?
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGMLって元は定理証明システム用言語だった訳だけど、
数式処理も一種の定理証明システムなのではないか…
ちうあたりで、同じ様な処理が求められているという意味かも?
>>231
MLと断ってあるし、原始言語(LISP)はあまり関係ないと思う
0241デフォルトの名無しさん
NGNG>関数型言語の共通コンパイラバックエンドを作ろうというプロジェクトなどが
>計画されたことなどあるんでしょうか?聞いたことないですが。
これなんてどうなんでしょう?
http://cs1.cs.nyu.edu/leunga/www/MLRISC/Doc/html/
0242デフォルトの名無しさん
NGNGなにこれ?
0243デフォルトの名無しさん
NGNGってゆー噺だと思われ
0244デフォルトの名無しさん
NGNGあれは、GCCの公式配布パッケージの中に取り込んでもらえないのかな?
0245デフォルトの名無しさん
NGNG若干意味不明
0246デフォルトの名無しさん
NGNGなるんでしょうか?バックエンドとしてgccを使うのは
なにもHaskell4.0Xだけではなかったように覚えてますが。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251名無しさん@Emacs
NGNG漏れもそうだと思ってたけど、
例の剃刀との関連が今一というか。
0252デフォルトの名無しさん
NGNGスレ違いと思うのは漏れだけ?
関数型プログラミング言語ML
1:デフォルトの名無しさん :02/01/31 11:43
関数型言語ML(SML/Caml/Ocamlなど)についてのスレッドです。
 ̄ ̄ ̄ ̄ ̄
http://pc2.2ch.net/test/read.cgi/tech/1012445015/
■ このスレッドは過去ログ倉庫に格納されています