関数型言語Part2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/987954395/
00021
NGNG「関数型言語からRubyへステップアップ」
です。よろしくお願いします。
0003デフォルトの名無しさん
NGNG関数型プログラミング言語Haskell
http://pc.2ch.net/test/read.cgi/tech/996131288/
ML!!!!!!
http://pc.2ch.net/test/read.cgi/tech/1002111468/
LISP Scheme Part2
http://pc.2ch.net/test/read.cgi/tech/1002584344/
Emacs Lisp
http://pc.2ch.net/test/read.cgi/tech/1004551074/
再帰
http://pc.2ch.net/test/read.cgi/tech/992241842/
00041-original>>2
NGNG00051-original
NGNG勝手にスレ立てしてごめんょ。魔が差したんだょ。
あとは任せたょ。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG一応はしりだろ。
0008デフォルトの名無しさん
NGNG「関数型言語からRubyへステップアップ」
です。よろしくお願いします。
0009デフォルトの名無しさん
NGNGlispは破壊的なリスト操作をしなくてもプログラムが書ける。
↓
代入が無ければ見通しがいいかも。
↓
変数なんて捨てちまえ。
↓
ついでに副作用なんて捨てちまえ。
↓
作用的評価順序なんて捨てちまえ。
↓
最近カレーがンまい!
↓
haskellの誕生。
0010デフォルトの名無しさん
NGNG関数型をほんとに理解してるやつが居るのかどうか
怪しいという点だ(おれも含めて)―――――
0011デフォルトの名無しさん
NGNGttp://www.cs.nott.ac.uk/~gmh/faq.html
comp.lang.functional FAQを読むと、SchemeやMLは一応「副作用も許す
のでpureではない関数型言語」という扱いになっている。Lispは論外だ
ね(副作用なしではループも書けないから)。
ところで、FAQだとHaskellも「広い意味での純関数型言語」となってい
る。I/Oがpureとは言いきれないから、らしい。
0012デフォルトの名無しさん
NGNGこれはどこに書いてある?
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG余計な一時変数を作らないようにしたり、再帰でプログラミングしたりといったことは、関数型言語でなくてもできる(速度的に不利だとしても、ボトルネックだとわかるまではそのままにしておける)。
やってみればデバッグが楽になることがわかるし、その問題への本質的な理解が深まることがわかるよな。
0015デフォルトの名無しさん
NGNGhttp://www.cs.nott.ac.uk/~gmh/faq.html#purity
0016デフォルトの名無しさん
NGNG>a broader sense to mean languages that might incorporate
>computational effects, but without altering the notion of `function'
ここ訳してお願い
0017デフォルトの名無しさん
NGNGそこにはHaskellのI/Oメカニズムでは実行と評価が分かれてる
と書かれてると思うが、pureとはいい切れないなんて意味じゃな
いだろ?
0018デフォルトの名無しさん
NGNG>a broader sense to mean languages that might incorporate
>computational effects, but without altering the notion of `function'
(直訳)
「関数」の概念は変えないが計算的な作用を組み入れた言語まで意味するよう
なもう少し広義で"純関数型"という用語を使うことがある。
(意訳)
「参照透明性」は壊さないまま、いわゆる副作用も扱える言語まで含めるよう
に、「純関数型」という用語を拡大解釈することがある。
(そういう拡大解釈をしなければHaskellは「純関数型」に含まれない。)
0019デフォルトの名無しさん
NGNG意訳のほうがめちゃめちゃ作為的にみえるんだけど。
0020Kusakabe Youichi
NGNG> > Sometimes, the term "purely functional" is also used in
> > a broader sense to mean languages that might incorporate
> > computational effects, but without altering the notion of `function'
> ここ訳してお願い
自動翻訳だと
「一般的な言語では"purely functional"という用語は計算結果を含む
より広義にも用いられる場合もある。」
ですね。
meanを動詞と解釈するのもWebにはあるけど、
ほんとのところはどうなんでしょ?
(「卑劣な, 下品な, さもしい, あさましい」だったり:)
0021デフォルトの名無しさん
NGNG一般には副作用と捕らえる事柄を、作用の概念のみを用いて表せるように
した言語を純関数型ということがある。
(Haskellは一般には副作用となるような言語すら副作用ではなく扱える
完全に純粋な関数型である)
0022デフォルトの名無しさん
NGNGそれはコンピュータのアクションを扱わない言語が狭義の純関数型で
コンピュータのアクションも扱って、しかもそれが副作用では無い
言語が広義の純関数型と言ってるだけじゃないの?
それによるとHaskellは広義の純関数型だけど、完全に純粋ではない
と言うネガティブな意味ではなくて、純粋なくせに他より強力な
機能を持ってると言うポジティブな意味だと思う。
0023デフォルトの名無しさん
NGNG>より広義にも用いられる場合もある。」
まあ良いけど「一般的な言語では」ってどうやったらそうなるのよ。
>meanを動詞と解釈するのもWebにはあるけど、
sense to mean を不定詞以外にどう解釈するんだ。
>一般には副作用と捕らえる事柄を、作用の概念のみを用いて表せるように
>した言語を純関数型ということがある。
「一般には」ってどっから湧いて出た?
effectって言葉は原文に1つしかないぞ?
>(Haskellは一般には副作用となるような言語すら副作用ではなく扱える
>完全に純粋な関数型である)
自動翻訳か? 「言語すら扱える」って(藁
0024デフォルトの名無しさん
NGNG> まあ良いけど「一般的な言語では」ってどうやったらそうなるのよ。
Computatinal effectsって「一般的な」言語では副作用でしょ?
002524
NGNGレスの仕方を間違えた。
> 「一般には」ってどっから湧いて出た?
> effectって言葉は原文に1つしかないぞ?
Computatinal effectsって「一般的な」言語では副作用でしょ?
「functionの意味を変えずに=作用のみを用いて」でしょう。
0026デフォルトの名無しさん
NGNGMonadic I/O以前のHaskellはI/Oを扱っていたが狭義の
純関数型言語だったんじゃないか?
だからその「狭義」の解釈は違っている。
0027デフォルトの名無しさん
NGNGHaskell -> lazy but pure
SML/NJ -> eager but dirty!
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGおまえに任せた
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG抽象化できるかぎり抽象化するのが通のやり方。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG抽象化された関数を利用するときに具象的な実引数を渡せば良いだけではないの?
つまり、関数を利用する側では、具象的な識別子を使えばいいんだよ。
関数を定義するときはできるだけ抽象的な識別子を使う。
それが通の使い分け。
0034デフォルトの名無しさん
NGNGf(g(Kusakabe_Yokaichi ))
0035デフォルトの名無しさん
NGNG通でもなんでもないだろ
0036デフォルトの名無しさん
NGNG0037なんだネタか
NGNG0038デフォルトの名無しさん
NGNGつまらない議論ばかりだな。
0039デフォルトの名無しさん
NGNG可読性からいっても、結構重要なことだと思うぞ。
実際JAVAなんて、打ち込んでるだけで嫌になるしな。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGコピペすれば?
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNGお前らなんか勘違いしているようだが
俺たちに生産性やそれを左右する
開発手法・コーディングスタイルなんて関係がないのさ
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGなにかを生産・開発することではない
それにコードも長くて100行程度だから
手法やスタイルは一切不要なのだ
おわかりか?
0050デフォルトの名無しさん
NGNG一文字変数使いまくりのHaskellの大胆さに失禁気味です。
0051デフォルトの名無しさん
NGNGJavaやHaskellみたいに極端なのは外基地
0052デフォルトの名無しさん
NGNGわかりやすくしようとすると、ダラダラ長くなる。結局長すぎて見
通しが悪くなり、かえってわかりにくくなる。
0053デフォルトの名無しさん
NGNGJavaみたいなinclusion polymorphismな言語では長い名前のほうが合ってるけど
関数型言語みたいなparametric polymorphismな言語では長くしようがないと思われ。
「hd x = ...のxをx以外にどう言えってんだ」って。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG0056朝の心理テスト
NGNG今日のラッキーアイテムはedlin。
0057デフォルトの名無しさん
NGNGだから、長くしようと思えば、Haskellで長くすることもできるし、
Javaで短くしようと思えばすることもできるじゃない。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG関数の中での変数名は一文字でもいいだろ。
0060デフォルトの名無しさん
NGNG現実的なプログラムって全然汎用的じゃなくてある決まった処理を
するために作られることがおおい。だから変数名は端的かつ分かりやすい
方がいい。そのために自然言語の意味の借用もありでしょ。
だけど関数型言語のやり方にケチつけてる必要もない。
かれらが表現したいのは個物から離れたものだから。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG手続き型での常識を持ち込まれても…。
0063デフォルトの名無しさん
NGNGどうやって短くすんだ?
0064デフォルトの名無しさん
NGNGライブラリに頼るのは厨房
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGpvsマンセー!!!
逝って来ます...
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070_
NGNG0072デフォルトの名無しさん
NGNGlispは関数型ではないって話のながれだったのでは…
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGここの多くのプログラマは、
学生が業務系システムについて何も知らないことをバカにする割りには、
自分らが研究分野について無知なことには無頓着なのでれす。
俺は業務系。研究分野なんて何も知らん。だから何も言わないw
0075デフォルトの名無しさん
NGNGハハハ,鋭い.それでもって,研究動向に無知なことを指摘されると,
「それ(研究)じゃ給料は稼げない」とか言うわけね.
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG食える言語は他にいくらでもある。
0079浮上
NGNG0080デフォルトの名無しさん
NGNG関数型の言語って静的にプログラムの内容を
検証しやすいとかってメリットはあるの?
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGOOを実現した関数型言語はいくらでもある。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG・手続き型
・オブジェクト指向型
・関数型
・論理型
という2種的(w)なカテゴリーに分けることが
既に現実からはなれてしまっているような気がするが。
0085現実的な回答
NGNG・実務型
・オナニー型
言うまでもなく、所謂関数型はことごとく後者だ。
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGこすり過ぎて、関数型言語でショッピングサイトを作ろうなんて
暴挙に出るなよ。
0088デフォルトの名無しさん
NGNGことごとくライバルを打ち負かしてしまい、オナニーに拍車がかかるからな。
0089デフォルトの名無しさん
NGNG前者には APL と PL/I と COBOL と VB と C と C++ しかないようですが?
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093login:Penguin
NGNGだめなの?
0094デフォルトの名無しさん
NGNGgcc は実務に使えないと?
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGんなことないべ。
>>75
OCamlは?使ったことないんだけど。
009894
NGNGgcc は一旦プロセッサに依存しないツリーを作って、それをプロセッサ依存のコードに展開する方式を
採用している。でプロセッサ依存部分の記述だけど、ソースを見れば分かるように、独自の関数型言
語で書いてある。(see config/i386/i386.md)
あとはデータファイルが関数型言語っぽいデータ構造になってる CAD なんかも、わりとよく見かける
ね。
0099デフォルトの名無しさん
NGNGかっこがたくさんあるからって関数型って呼んでたら
関数型やってるひとが怒るぞ。
0100デフォルトの名無しさん
NGNGどっちの話?
0101デフォルトの名無しさん
NGNG関数型言語的というよりLisp的だから。
EmacsのStallmanが作ったcompilerだし。
■ このスレッドは過去ログ倉庫に格納されています