関数型と手続き型
at TECH
570:デフォルトの名無しさん
07/08/03 18:33:56
>>565
Rubyやってると、むしろこうなる
def getCrSeparatedStr(keyword) do
keword.deleteSigleQuote.modifySpaceWideToNarrow.modifyConcatenatedSpacesToSingleSpace.trim.replaceSpaceWithCr
end
571:デフォルトの名無しさん
07/08/03 22:28:19
手続き型って頭悪いプログラマーを連想するな、このスレの C++ 信者とか
572:デフォルトの名無しさん
07/08/03 22:34:11
そりゃ、人数が多ければ、駄目な奴もその分多めになる。
573:デフォルトの名無しさん
07/08/03 22:35:09
だめな奴が居るからできる奴が輝くんじゃないか
574:デフォルトの名無しさん
07/08/04 07:42:33
>>571
手続き型を使っているプログラマーが頭が悪いのではなく、
頭が悪いプログラマーが手続き型を多く使っているだけ
頭の悪い奴は、関数型は使えないw
575:デフォルトの名無しさん
07/08/04 09:28:20
>>573
ちがう、できるやつ:だめなやつ=2:8
576:デフォルトの名無しさん
07/08/06 11:01:40
2も居るのかうらやましいな・・・('A`)
577:デフォルトの名無しさん
07/09/03 13:11:19
関数型ド素人です。
友人が以前Ocamlを絶賛していたので、ちょっとかじってみようかな、と思いますが。
Ocamlって関数型としては厳格な方なんでしょうか。
あと、ここのスレ大変面白く読ませていただいてますが、自分がソースからスキルを
判断する際に基準にしているのが、
「縦に長いソースコードを書く人間はダメ」
っていうものです。関数型使いの方々が頭が良いということと関連するのかな、とも
感じました。
578:デフォルトの名無しさん
07/09/03 13:24:30
>>577 OCamlはゆるゆるです。
579:577
07/09/05 10:00:55
>>578
そうですか・・・。
ユルユルってことは、手続き型と同様の不具合の可能性があるということなんでしょうか。
自分の理解では、関数型は変数への破壊的代入が無いということが、手続き型で発生する問題
の大半を抑止できるということかと思ってます。手続き型はそれを防ぐために、変数のスコープを
できるだけ短くする、といった工夫が必要です。オブジェクト指向の最も重要な特徴も、データの
カプセル化なわけですが、関数型はそういった気遣いが無用ということなんでしょうか。
580:デフォルトの名無しさん
07/09/05 11:56:21
>>579
MLでは変数はデフォルトで変更不可。だから
let p = 5 in (巨大な式)
とあったら、pはずっと5であることが保証される。
ただ、MLは式が副作用を持つことを認めるので、
裏でこっそりグローバルな状態を書き換える関数なんかが定義できる。
この点で、副作用を禁止するHaskellなんかと比べると厳格でない。
>関数型はそういった気遣いが無用ということなんでしょうか。
たとえreadonlyでも実装を公開したら実装に依存されてしまう。
だからカプセル化が必要になることはあるし、そのための仕組みも提供されている。
581:デフォルトの名無しさん
07/09/08 10:15:35
関数型にも色々あるようなんですが、何がオススメでしょうか。
582:デフォルトの名無しさん
07/09/16 21:19:01
Schemeがお勧め
583:デフォルトの名無しさん
07/09/18 10:04:15
F#
584:デフォルトの名無しさん
07/11/05 01:46:56
>>295
ツール不足(というか全くない)。
でも関数型CPUと言えるものは製品としてあるよ。
585:デフォルトの名無しさん
07/12/10 08:13:44
志村〜日付日付!
586:デフォルトの名無しさん
08/04/10 11:44:28
>>1
こういう分類をする場合は、論理型も関数型に含めていいんだろうか?
587:デフォルトの名無しさん
08/04/11 01:26:05
Lispって関数型言語なのかな?
ちょっと勉強がてらに手元にあるEmacsLispを見てみよう
・・・何という手続きのかたまり
588:デフォルトの名無しさん
08/04/11 02:31:16
Lisp は手続き型言語に分類するのが普通だと思う。
中でも Emacs Lisp は手続き的なコードを書くのが一般的。
論理型言語は関数型とも全然違うでしょ。
どっちにも分類できない第三の勢力だけど、マイナーだから無視される。
589:デフォルトの名無しさん
08/04/11 03:49:09
論理型言語ってprologとかplannerとかその方面?
wikipediaからつながってる方向だとこういうのとプロセス代数なんかがうまく融合したら
(というかアクターとかはそっちからの考え方に近いのか?)、
テストやらモデル検査は楽になりそうだけど、なんつーか工業製品を作っているみたいな気分になってくる。
いや本来はそっちが目的なのかもしれないが。
アカデミックになると途端に専門用語が数学臭くなって、プログラミングの本来の楽しさみたいなのが消え失せるな。
プログラムではなく事象を記述するというか。まぁ数学的な面白さってのはあるんだろうけどね。
これがプログラマが理解できるまで降りてくると、コンパイラあたりで自動化されてんだろうな。
数学、コンピュータサイエンス、ソフトウェアサイエンス、ソフトウェアエンジニアリング、IT土方、
それぞれで必要になるものは変わってくるんだろうけど。
最近/.でこれみてからなんかこの辺のことを考える様になった…。
Forget Math to Become a Great Computer Scientist?
URLリンク(developers.slashdot.org)
590:デフォルトの名無しさん
08/04/11 07:52:47
>>589
つ GHC, Concurrent Prolog
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5385日前に更新/127 KB
担当:undef