アカウント名:
パスワード:
代入なんかするから混乱するんだ。みんなが関数型言語を使用すれば幸せになれる。
超算数を理解しておけば「イコールする数」と「イコールされる数」の区別ができるのでこの記法も得心できるよ。きっと
プログラマなら「変更可能な左辺値」なる謎の言葉を知っているはず
こうですか?(incf x)
# それは関数型言語じゃない!
myFunc=lambda x:pow(x);//とかではなさそう
実際プログラミングの知識がない数学者にとっては関数型言語のほうがわかりやすいそうだ
John McCarthy [wikipedia.org]
論理型言語も忘れては困るPrologでも無限の長さの項として問題無い定義になってる
関数型じゃなくても、静的単一代入(Static Single Assignment form, SSA)で書けば問題ないですよ。=を使うのは初期化のときだけで、再代入しなければ良い。
再代入を禁止(あるいは推奨しない)関数型プログラミング言語を初めて学んでいたら戸惑うでしょう。
私もそうですが、関数型でないプログラミング言語を先に学んだ人は関数型プログラミング言語の習得は大変です。(いやいや関数型も簡単だったよという人は素晴らしい)
読んで理解できなかった関数型プログラミング言語の入門書には、再帰で階乗を求める例が最初のページに載ってたが、その説明読んで Hello, World! 並に理解できる入門者はあまりいない気がする。
# Scheme手習いを何ヶ月かめくってると、それくらいなら考えなくても湧いてきたけど。
Haskellならただの再帰的定義だよね無限リストとか普通にやるよね
関数型言語のHaskellでも x=x+1と書けて、それ自体はエラーにならない。xを読もうとすると無限ループになるようだけど。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
関数型言語 (スコア:1)
代入なんかするから混乱するんだ。
みんなが関数型言語を使用すれば幸せになれる。
Re: (スコア:0)
超算数を理解しておけば
「イコールする数」と「イコールされる数」の区別ができるのでこの記法も得心できるよ。きっと
Re: (スコア:0)
プログラマなら「変更可能な左辺値」なる謎の言葉を知っているはず
Re: (スコア:0)
こうですか?
(incf x)
# それは関数型言語じゃない!
Re: (スコア:0)
myFunc=lambda x:pow(x);//とかではなさそう
Re: (スコア:0)
実際プログラミングの知識がない数学者にとっては関数型言語のほうがわかりやすいそうだ
Re: (スコア:0)
John McCarthy [wikipedia.org]
Re: (スコア:0)
論理型言語も忘れては困る
Prologでも無限の長さの項として問題無い定義になってる
Re: (スコア:0)
関数型じゃなくても、静的単一代入(Static Single Assignment form, SSA)で書けば問題ないですよ。=を使うのは初期化のときだけで、再代入しなければ良い。
Re: (スコア:0)
再代入を禁止(あるいは推奨しない)関数型プログラミング言語を初めて学んでいたら戸惑うでしょう。
私もそうですが、関数型でないプログラミング言語を先に学んだ人は関数型プログラミング言語の習得は大変です。
(いやいや関数型も簡単だったよという人は素晴らしい)
Re: (スコア:0)
読んで理解できなかった関数型プログラミング言語の入門書には、再帰で階乗を求める例が最初のページに載ってたが、その説明読んで Hello, World! 並に理解できる入門者はあまりいない気がする。
# Scheme手習いを何ヶ月かめくってると、それくらいなら考えなくても湧いてきたけど。
Re: (スコア:0)
Haskellならただの再帰的定義だよね
無限リストとか普通にやるよね
Re: (スコア:0)
関数型言語のHaskellでも x=x+1と書けて、それ自体はエラーにならない。
xを読もうとすると無限ループになるようだけど。