[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
500: デフォルトの名無しさん [sage] 2019/10/08(火) 16:25:57.34 ID:ELFSZFvj(1/7) AAS
同じことの繰り返しを書かなくて済むのが大きいかな。

例えばEitherとIOの組み合わせのモナドでハードとの通信を
書いた時,割り込みプロセスを考えなくてもLeftで返せば
後続コードを飛ばしてエラーを返せるし,コード量が減った
だけ,ミスの発生率も低くなる。

これがモナドなしだとハードとの通信をするたびにエラー
確認コードをいれて例外処理やなんやかやをしないといけ
なくなる。
503: デフォルトの名無しさん [sage] 2019/10/08(火) 18:17:24.58 ID:ELFSZFvj(2/7) AAS
少なくともタイプする文字数はめっちゃ減る
509: デフォルトの名無しさん [sage] 2019/10/08(火) 21:24:42.66 ID:ELFSZFvj(3/7) AAS
>> 505
モナドや高階関数のおかげもあるけど文字数が減るのは
つきつめると言語全体に貫かれた表現の簡潔さ志向の仕様によるかな

参照透過性のおかげで副作用を気にせず共通部分を
気軽に関数としてまとめられるとか

ブロック前後の括弧がいらないとか

再利用や多様な型に適合するように引数や関数の名前を短めにするとか

局所変数がないとか

簡単に二引数の演算子を記号を使って定義できるので
関数名を何度も書かなくて済むとか

いろいろ

書く部分が少なくなるとそれだけケアレスミスの入り込む余地は少なくなるね。
それとS/N比がよくなってロジックを追いやすい。
511: デフォルトの名無しさん [sage] 2019/10/08(火) 21:39:47.76 ID:ELFSZFvj(4/7) AAS
何か書いてみた?

自分はRWHとかPCHとか読みながらオレオレプロジェクトを仕立てて
書き進めていったらある日を堺に急にこういうことかと理解が進んだ。
513
(1): デフォルトの名無しさん [sage] 2019/10/08(火) 23:04:55.55 ID:ELFSZFvj(5/7) AAS
自分もエラーが何を意味しているのか最初はわからなかった。

ただほとんどのエラーは型の不一致由来。

だから何行目のどこでエラーが出ているかだけわかればあとは
型を順番に調べていって解決できるようになった。

スペルを間違えたり似たような目的で使う別の型と勘違いしていたり
とかそれなりの理由でエラーが出ているはず。後者は代数データ型を
適当にその場で作ったりしてた頃によくやってた。
515: デフォルトの名無しさん [sage] 2019/10/08(火) 23:13:57.88 ID:ELFSZFvj(6/7) AAS
その暗黒時代にSMLの本を店頭で見かけて気になった記憶がある。
結局買わなくていきなり普通のHaskellまでとんだ。

ソースから実行コードにどんなふうにおとしていってるのか最近
気になってきたのでそのうち古本でMLの本でも手に入れるか
GHCのが吐くコードを追っかけてみたい。
517: デフォルトの名無しさん [sage] 2019/10/08(火) 23:42:31.20 ID:ELFSZFvj(7/7) AAS
どういたしまして!

基本文法は簡単だから文法エラーはすぐにほとんど出なくなります。

そこまでいったら初級編終了。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s