関数型言語Part2
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/987954395/
0809デフォルトの名無しさん
NGNG条件分岐がパイプラインを詰まらせるって、
関数型言語を実行しても分岐だらけに変わりないだろ。
その関数型言語のソースコードレベルに「if」があまり直接出ないだけで、
機械語レベルでは条件分岐だらけだと思うが。
0810807
NGNG>>803は、
「関数型言語だと静的解析が容易だから、
投機的実行を含む、CPUパイプラインのスケジューリングが容易、
だから今時のCPUは関数型言語に向いている(コンパイラーを作成しやすい)」
ってなニュアンスかな。
で、詳細に検討しようとすると、例えば >>809 みたいな疑問/反論が出る、と。
>>806
面白そうな話題ですね。Embedded UML & OCL でしょうか?
0811デフォルトの名無しさん
NGNGパイプラインが詰まる原因はスケジューリングが難しいケースに起こるが正解
だと思う
803 の言いたいことは参照透明が維持されていれば、
その先のことを考えなくても済むので、スケジューリングをするときの障害が少ないと言う事では?
0812デフォルトの名無しさん
NGNG>条件分岐はパイプラインを詰まらせるのではなくて壊すが正解
ちなみに分岐は条件分岐ではなく、無条件分岐のことをいっていました。
確かに、説明不的確ではあります。
さらに、パイプラインが詰まることと分岐とは別問題です(まったくという訳ではないのですが・・・)。
あと説明中の OOPL が良くないですね、別に OOPL に限った事ではなく
「手続き型」と「関数型」の違い・・・ひょっとしたら「手続き型」と「それ以外」
かもしれませんが・・・
シンプルに説明しますと、
スケジューリングするとは、式の評価順序を入れ替える
というです。
手続き型では、例えばメソッドはプログラムの「評価されるにしかるべき行にあること」が重要な訳です。
ここで「評価順序を入れ替」に対して「評価されるにしかるべき行にある」はお互いに相反する事です。
関数型では、評価結果が次の評価に必要になる前ならばどこにあっても良いのです。
だから、制限付きながらも「評価順序を入れ替」を許容するわけです。
「評価順序を入れ替」が可能なら、スケジューリングも可能ということになります。
「手続き型」では入れ替えしても問題ないものを無理矢理探し出す作業が出てくるわけですが、そんなものはそれほど巧くいくわけもないのは道理たと感じています。
>その関数型言語のソースコードレベルに「if」があまり直接出ないだけで、
>機械語レベルでは条件分岐だらけだと思うが。
これは実装次第です、コンパイラ屋の気合次第です。(^^;
ちなみに僕は条件選択よりも、高階関数が嫌いです。
高階関数にも良い方法があるらしいのですが、まだ調べていません。
0813デフォルトの名無しさん
NGNG並行処理に適合しているということにも繋がりますかね?
0814デフォルトの名無しさん
NGNG0815葵
NGNG3×3行列Aに対し
1,Aを読み込みAの行列式を出力
2,Bを読み込みA×Bを出力
3,|A|≠0の時のA^-1を出力
0816デフォルトの名無しさん
NGNGふぅ。宿題は自分でやれ。
0817デフォルトの名無しさん
NGNGtail recursionはtail-call optimizationの特殊な場合にすぎなくて、
(相互再帰は駄目だけど単独再帰なら)JVMでもgotoで簡単に実装できるし、
stack inspectionの問題もないはずだ!!!
亀レス&もし既出だったらスマソ
0818デフォルトの名無しさん
NGNGVMで実装することになんか意味あんの?
だいいち使うのか?
あんまりすごさを感じないんだよね。
0819デフォルトの名無しさん
NGNG多様な言語->共通言語->機械語の形態で
各種コンパイラ言語 -> C -> 機械語
によって各種機種依存から逃れるという目的の流れが
JAVAその他インタプリタ言語 -> JAVAVM -> 機械語(なんかちょっとずれている気もする)
に変わった方がインタプリタには都合が良いということでは?
よく言われるマシンアーキテクチャの共通化とかいう旗印はCに出来なかった以上JAVAVMにも不可能と見た。
考え方は時代の違いくらいだしね・・・
0820デフォルトの名無しさん
NGNGインタプリタ:遅いけど手軽
コンパイラ:コンパイル作業あるけど、速い
って言う発想になじんじゃってるから、
コンパイル作業あるし、速さもたいしたことない
っていうのには抵抗感あるよ
0821デフォルトの名無しさん
NGNGパターンマッチなんてifだらけだよ.
0822デフォルトの名無しさん
NGNGコンパイラ: 速いが面倒
なんとかならないの?
そんなあなたに partial evaluation (w
0823デフォルトの名無しさん
NGNGそういうレスはなんか意味があるのか?
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG実行する瞬間にコンパイルもしてくれるが、どうよ?
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG初学者です。
「代入をしない」で初期設定ファイルから初期設定ができるん
ですか?
Schemeでは下の様にすると代入してます。さらにdataを
変数に代入しないとプログラミングなんてできないと思うの
ですが。
(define data (call-with-input-file "./data.db" read))
0830デフォルトの名無しさん
NGNGはあ、普通に束縛するだけで破壊代入する必要はないと思うけど…
何となく「代入しない」を勘違いしてるように見えます。
まずは関数型言語の入門書でも読んでみたらどうでしょ?
お勧めとしては武市先生の「関数プログラミング」が入門者向けでかつ分量もたいしたことない。
その本が手に入らなければ、MLの入門書はいろいろ出てるみたいだから読んでみたら?
0831デフォルトの名無しさん
NGNGわからないと難しいと思われ
はぎゃ先生のほうの「関数プログラミング」の
ほうがいいかも。
0832デフォルトの名無しさん
NGNG・変数の出現と同時に値の「代入」を行なう。(未定義の値を排除)
・「代入」は一度だけしか行なわれない。(値が変わらない)
という考え方です。(変数の生存期間中値が変わらない)
そして、関数型言語の人たちはこれを「代入」とは呼びません。
C言語の人たちも「定義」と呼んでいます。
0833C言語のひと
NGNG0834デフォルトの名無しさん
NGNGschemeの場合は同ブロックの既存の変数を上書きdefineした場合、
古い値は永遠に参照できなくなるから、意味的には完全に「代入」。
つーか、環境書き換えるってことはシンボルの意味が変わるってこと。
関数型の視点からみると、ネストされたletが>>832のそれに当たると思う。
またはlambdaのネスト。
0835デフォルトの名無しさん
NGNGLISP系やScheme系が「代入」を持っているのはその通りだが、
ラムダ束縛が「代入」に相当するとは思わない。
0836デフォルトの名無しさん
NGNGdefine で変わるのって、 symbol に対応する address とか…だよね。
普通の意味での「代入」って、 set! とかの方だと思う。
define だと…例えば、既存の closure からは、古い値が見えるから。
0837石敢當
NGNGhttp://icfpcontest.cse.ogi.edu/
0838デフォルトの名無しさん
NGNGありますか?
Cleanなんて近そうですが・・
>質問
(1) >UnixとWindowsで使えて
(2) >GUIと日本語(出来ればUTF8がいいな)が使えて
(3) >GPLじゃないバイナリがつくれて
>ありますか?
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG名前でアクセスすりゃ見えねえよ
0841LISPスレ 686
NGNG失敬な。>>838 は私ではありません。誰か別の人です。
とは言え、Scheme に限らずとも知りたくはありますね。
0842デフォルトの名無しさん
NGNGGaucheはどうよ。GaucheはSchemeの一実装。
次のバージョンでGUI対応。いつ出るのかは不明。
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNGバイナリ作れるのか・・・?
というか、目的ちがくないか・・・?
0845デフォルトの名無しさん
NGNGschemeは!
バイナリ作れるにょー
0846コギャルとHな出会い
NGNG朝までから騒ぎ!!
小中高生
コギャル〜熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
小中高生大歓迎です
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。
激安携帯情報あります。
0847デフォルトの名無しさん
NGNGWin版だと、VCが無いといけないのか?
0848あげ
NGNGcygwin版もあるょ
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNGのある設計ツールのスクリプト言語がSKILL++というので、
Schemeだった.manualにも
Cadence-supplied Scheme called SKILL++
とか
SKILL++ is designed with IEEE Scheme and CFI Scheme compliance in mind,
とか書いてある.ファイルを見たら括弧だらけでびびった.
なんでSchemeだったんだろう.
(1)たまたまそのツールを作るチームでSchemeが好きなやつがいた.
(2)Schemeをスクリプト言語とすると半導体チップが非常に協力に
設計が出来る何かしらの理由がある.
もし(2)なら是非知りたいものだ.
そんだけ.
0851デフォルトの名無しさん
NGNG(3)MIT出身者がいるとか(w
アプリケーションの補助スクリプトとしてLISP系を選ぶ利点は
emacsやAutoCADとかで証明されてると思うけど、わざわざ
CommonLISP互換にしたり、オリジナルな独自LISPを一から設計
するよりは、お手軽にschemeを使った方が良いと判断された、
ってこともあるんでは。schemeなら機能的に不足は無いし。
メジャーなLISP系としては仕様が一番軽いし、組みこみでも実績あるし。
使う側からすれば、分厚いマニュアルを読まなくても良いに越したことはない。
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG「普通のやつらの上を逝け」には競争相手が知らないことは逆にメリット
だみたいな感じに書いてあった、、気がする。
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG何で?
0858デフォルトの名無しさん
NGNG想像力が無いな。
例えば、もしも2ちゃんに「LISP板」が立ったら、を考えてみろ。
0860デフォルトの名無しさん
NGNG「C板」すらないのに、そんな心配いらねーよ!
0861デフォルトの名無しさん
NGNGああ、(3)が一番しっくり来る.それだ.
たしかに関数型言語でOCamelとかじゃなくてschemeを選ぶというのは
分かるのですが、
関数型言語を選ぶというのは(AutoCADなどで実証されたとありますが)
なぜなんでしょう?アプリのカスタマイズ用スクリプトはやることが決まっている(emacsはいろいろできるけど)から、ライブラリの
少なさが問題にならない、とか?たしかにAutoCADなら文字列操作や
ネットワークやらの操作をするための部品をあらかじめ用意しておかなくても
全然OKなわけで.
そういえばGIMPもそうですな.(AutoCADがそうだったというのは初めて
知りました.)
0862デフォルトの名無しさん
NGNG括弧の多さが可読性を低下させている
0863デフォルトの名無しさん
NGNGコンパイラを作りたがるんでしょうか?こんなんだからいつまでたっても
メジャーな処理系が出てこないと思うんだけど。
0864デフォルトの名無しさん
NGNG>るのを常々敬服しています。どうすれば先生のようになれ るのでしょうか?」
>師「えっ? カッコ? あ、そうか。そんなものもあったな。いやあ、 すっかり
>忘れておったわ」
0865デフォルトの名無しさん
NGNGんなこといってるから、メジャーにならないという罠。
0866デフォルトの名無しさん
NGNG省略可能だったり、とか考えると、すんげー単純でイイ、と思うけど > 括弧
>>863 gcc のフロントエンドにコレ系の言語を載せるには、
gcc というフレームワークと gcc のバックエンドには荷が
重いと思われ。
0867デフォルトの名無しさん
NGNGcar板とcdr板は立ったから、あともう一息。
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG五色不動の完成だな。
0871デフォルトの名無しさん
NGNG最新のコンパイラ技術とはどんなのですか?
たしかにgccの実装技術に関する参照論文は古いのが多いですが。。。
0872デフォルトの名無しさん
NGNG構文が基本的に()だけで済むっていうのは
補助言語としては使いやすくていいのでは。
()の上に構築される文法は仕様が基本的にかっちりとあるわけだし。
Lisp知らない人が多いのが問題だとは思うが‥
(GIMPの script-fu も確かにそうですね)
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNG関数型言語の有名人を集めたMSがどんな仕事をしてくれるのか
とくと拝見させて頂きましょう。また先生方の実務能力も。
そして我々GNUツール大好き人間はその成果を頂くと。。。
0876デフォルトの名無しさん
NGNG例えばラシッド先生とかさ。知らない?
先生方の能力はghcがバンバンバージョンupしとることと
バンバン論文が出とることで証明済みと思う。C# が c--
だったらなぁ、とは思ったけど。
>>874 Wizard Book が Scheme 本としても MIT の
教科書としても有名ですが何か
0877デフォルトの名無しさん
NGNG武蔵工大じゃねぇの?
0878デフォルトの名無しさん
NGNGghcって、Glasgow Haskell Compiler?
0879デフォルトの名無しさん
NGNGナットク
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG括弧の多さは可読性低下には繋がらない。
慣れだよ。
0884デフォルトの名無しさん
NGNG繋がるよ。括弧に頼ってインデントが減る傾向にあるから。
お手本とされるプログラムでも、大抵はCより減ってる。
それに、インデントがもっとあっても、他の言語よりは、慣れるまで
に少し時間を要する。
0885デフォルトの名無しさん
NGNGネスト関係が一目でわかりやすい。括弧が一種類しかないLispよりも。
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGもっとも初心者には余計読み難くなるけどな。
0889デフォルトの名無しさん
NGNG> 繋がるよ。括弧に頼ってインデントが減る傾向にあるから。
具定例を挙げてみてくれ。
インデントが減るだけでなく、可読性も減ると貴方が思う例を。
0890既出か?
NGNGhttp://www.pearsoned.co.jp/washo/prog/wa_pro59-j.html
>本書は、アジソン・ウェスレイ発行/星雲社発売で1996年に発行された、Ravi Sethi著『Programming Languages』の
>初版の翻訳です。品切れになっていたものですが、、このたび新装版として発行しました。したがって、内容
>には変更がありません。
うれしぃぃぃぃぃいぃぃxぃぃぃぃぃぃーーーーーーーーーーー。
0891デフォルトの名無しさん
NGNGこれは買わなくてヨシと思いつつ、
原書の方は買ちゃた覚えが(汗だく
0892デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4894717700/
0893デフォルトの名無しさん
NGNG英語オンリーでやるのが良さそう。日本語文献はいいのが少ないからね。
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG第2版翻訳しろよ。
0896デフォルトの名無しさん
NGNGよくある発想だが、
それに頓挫するのもよくあることだ。
0897美しい
NGNG0898デフォルトの名無しさん
NGNG英和辞書引いても、今度はその日本語の用語を理解しないと
いけないからね。Cができる人がJavaを覚えるのとはちょっと違う。
数学辞典の英訳書があると何かと便利かな。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG研究費をもらってくるための旗印としては、
データフロー記述だから並列実行に適しており云々
とかいうあたりがありがちかな
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGhttp://www.dcs.qmul.ac.uk/SEL-HPC/Articles/HpcArchive.html
http://www.dcs.qmul.ac.uk/SEL-HPC/Articles/GeneratedHtml/hpc.functional.html
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGhttp://www.sun-inet.or.jp/~yaneurao/intensive/spt1.html
0906デフォルトの名無しさん
NGNG0907名無しさん@Emacs
NGNG「C++プログラマのためのHaskell入門」とか、正面から入門してちゃんと習得
できるようなアプローチだったらいいのだけれど、C++な頭脳のままで理解で
きるところだけつまみぐいしようとすると結局
「よくわからん」や「それって**で済むじゃん」とかいうもったいない結論
になってしまう罠。
0908デフォルトの名無しさん
NGNGこの人らはどこの学校の人?
俺学会はよく知らないんで、教えて欲しいんだが。
レス数が900を超えています。1000を超えると表示できなくなるよ。