アカウント名:
パスワード:
参考「プログラミングできる人とできない人との間の深い溝」 http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp] 「どうしてプログラマに・・・プログラムが書けないのか?」 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm [aoky.net] 「Javaスクールの危険」 http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%8... [joelonsoftware.com]
「学位は持ってる = 優秀なプログラマ」ではないが、「独学でやりました(キリッ)=優秀なプログラマ」でもない。それだけの話だと思う。
ひょっとしたら、この記
> 「独学でやりました(キリッ)=優秀なプログラマ」でもない。
これは事実だな。黎明期からのパソコンユーザのはしくれとして、単なるアプリの利用者になるのではなく、自分のやりたいことをしてくれるプログラムを組む自由ってのは絶対に確保しなきゃならんと考えているのだけど、結局、自分はバグを量産するばかりで、本当に凄い連中には絶対に敵わないことを思い知ったよ。
configureスクリプトにパラメータを渡して、コンパイラを動かして独自のビルドを作る方法とかは分かるし、ちょっとしたソースの修正なら自分にもプログラムが読めなくはないのだから、クイックハックというかアレゲな修正というかそういうパッチみたいなコードなら書けるけど、何かやりた
自分はSchemeみたいにループを全て再帰で表現するような言語でマトモにプログラムを書ける気がしないッスよ。
繰り返し演算をループと捉えるか,結果に対する漸化式(再帰)と捉えるかの違いであって,ループを再帰で書いてるわけじゃないと思いますよそれが関数脳たる所以じゃないでしょうか
他の手続き型プログラミング言語の多くでループで実装されている処理って, 関数型言語のmapで実現されているので, 分けて考えないといけないのかと思います.
古典的手続き型プログラミング言語だと, 計算結果を次の計算の入力に使用する時間的な繰り返しと, 複数のデータに対して計算を行う空間的な繰り返しを一纏めにして「繰り返し」としちゃっているのが間違いの元のような. 古典的な手続き型言語だと, どちらも同じ繰り返し構文で実現できますが(同じだから良いわけではないけど), 関数型言語だと前者は再帰関数に適応することができますし後者はmap系関数に適応することができます.
そういう違いを考慮せず, ループに拘泥することがむしろ「古典的手続き脳」なんじゃないかと思います.
でも、そのmap系関数も元をたどれば再帰で書かれてて、ものすごーく基本的な要素と再帰だけで何でもできるんじゃーというのが関数型言語のセールスポイントかと思ってました。
ちなみに、ループにしろ再帰にしろ空間的な繰り返しと時間的繰り返しが同じ構文で実現できるのはただの偶然じゃなくて、何か数学的もしくは物理的な裏付けがあるような気がするんですよ。単なる素人の妄想ですけどね。何かの条件のもと空間と時間は等価だ。みたいな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
プログラミングできる人とできない人との間の深い溝 (スコア:3, 参考になる)
参考
「プログラミングできる人とできない人との間の深い溝」 http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]
「どうしてプログラマに・・・プログラムが書けないのか?」 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm [aoky.net]
「Javaスクールの危険」 http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%8... [joelonsoftware.com]
「学位は持ってる = 優秀なプログラマ」ではないが、
「独学でやりました(キリッ)=優秀なプログラマ」でもない。
それだけの話だと思う。
ひょっとしたら、この記
Re: (スコア:5, 興味深い)
> 「独学でやりました(キリッ)=優秀なプログラマ」でもない。
これは事実だな。黎明期からのパソコンユーザのはしくれとして、単なるアプリの利用者になるのではなく、
自分のやりたいことをしてくれるプログラムを組む自由ってのは絶対に確保しなきゃならんと考えているのだけど、
結局、自分はバグを量産するばかりで、本当に凄い連中には絶対に敵わないことを思い知ったよ。
configureスクリプトにパラメータを渡して、コンパイラを動かして独自のビルドを作る方法とかは分かるし、
ちょっとしたソースの修正なら自分にもプログラムが読めなくはないのだから、クイックハックというかアレゲな修正というか
そういうパッチみたいなコードなら書けるけど、何かやりた
Re: (スコア:0)
自分はSchemeみたいにループを全て再帰で表現するような言語でマトモにプログラムを書ける気がしないッスよ。
繰り返し演算をループと捉えるか,
結果に対する漸化式(再帰)と捉えるかの違いであって,
ループを再帰で書いてるわけじゃないと思いますよ
それが関数脳たる所以じゃないでしょうか
Re:プログラミングできる人とできない人との間の深い溝 (スコア:2)
他の手続き型プログラミング言語の多くでループで実装されている処理って, 関数型言語のmapで実現されているので, 分けて考えないといけないのかと思います.
古典的手続き型プログラミング言語だと, 計算結果を次の計算の入力に使用する時間的な繰り返しと, 複数のデータに対して計算を行う空間的な繰り返しを一纏めにして「繰り返し」としちゃっているのが間違いの元のような. 古典的な手続き型言語だと, どちらも同じ繰り返し構文で実現できますが(同じだから良いわけではないけど), 関数型言語だと前者は再帰関数に適応することができますし後者はmap系関数に適応することができます.
そういう違いを考慮せず, ループに拘泥することがむしろ「古典的手続き脳」なんじゃないかと思います.
Re:プログラミングできる人とできない人との間の深い溝 (スコア:1)
でも、そのmap系関数も元をたどれば再帰で書かれてて、
ものすごーく基本的な要素と再帰だけで何でもできるんじゃー
というのが関数型言語のセールスポイントかと思ってました。
ちなみに、ループにしろ再帰にしろ空間的な繰り返しと時間的繰り返しが
同じ構文で実現できるのはただの偶然じゃなくて、
何か数学的もしくは物理的な裏付けがあるような気がするんですよ。
単なる素人の妄想ですけどね。何かの条件のもと空間と時間は等価だ。みたいな。