1 名前:デフォルトの名無しさん mailto:sage [2017/01/15(日) 23:43:54.28 ID:Vh4eztBk.net] 関数型プログラミング言語 Haskell について語るスレです。 haskell.org (公式サイト) www.haskell.org/ 前スレ 関数型プログラミング言語Haskell Part28 echo.2ch.net/test/read.cgi/tech/1428597032/
357 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 11:06:48.65 ID:d2LalM1x.net] >>350 >>351 なるほど…ありがとうございます どうしても手続き型の考え方に引っ張られてしまってダメですね 精進します
358 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 11:18:51.46 ID:XSKy6kSK.net] 遅延評価が必ずループを打ち切る保証はない length (repeat ()) >= length [] --> ⊥ longer (repeat ()) [] --> True longer [] _ = False longer (_:a) (_:b) = longer a b longer _ _ = True
359 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 11:46:14.32 ID:y6q+iQAV.net] 遅延評価だからtake 2で必ず評価止まるわ
360 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 11:52:30.52 ID:IaTjJD59.net] 入力が無限でその中にevenがなけりゃtakeでも止まんないっしょ
361 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 12:35:32.98 ID:CeQn+bFS.net] さすがにその指摘は意味ないと思うけど
362 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 13:23:37.16 ID:XSKy6kSK.net] でも人間にとって無意味な手をコツコツ打って勝つ戦略って最近の人工知能がやりそうだ
363 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 14:06:36.95 ID:muUl2D49.net] >>355 そんな例だと遅延評価関係なく解決不可能だろう
364 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 15:43:00.00 ID:YV6k5aHw.net] むしろ止まらないのが正常な振る舞いだと思うの
365 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 17:46:12.38 ID:QnncI6PA.net] >>355 ちゃんと1万個って言ってるのに、どうして自分の都合の良いように前提条件変えちゃうの? 人の話聞こうよ! ゾイゾイ言ってないでさあ!
366 名前:デフォルトの名無しさん [2017/05/01(月) 23:03:54.91 ID:PiVFXFTP.net] 1まんこ
367 名前:デフォルトの名無しさん mailto:sage [2017/05/02(火) 01:06:52.67 ID:98ZJhHZq.net] 型でガッチガチに固めてコンパイルエラーで危険なコード通すの阻止してくる関数型言語の姿勢ってフールプルーフ?
368 名前:デフォルトの名無しさん [2017/05/02(火) 07:41:56.01 ID:kHyZ6XSn.net] >>360 草ァ!
369 名前:デフォルトの名無しさん mailto:sage [2017/05/02(火) 10:12:37.54 ID:HGZvLmNR.net] >>360 ゾイ!!!!!!!!!
370 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 16:56:36.78 ID:8xTy/mbt.net] ハスケルの発音はどこにイントネーションを置けばいいですか?
371 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 17:08:16.15 ID:j+V3ZaYg.net] はぁすくぅ
372 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 17:25:56.12 ID:YQuBqP26.net] ハースニールと呼んであげて
373 名前:デフォルトの名無しさん mailto:age [2017/05/03(水) 17:34:41.80 ID:3CkyOJSn.net] >>366 「haskell pronounce」でググれば簡単に https://wiki.haskell.org/Pronunciation に行き着く。 そうすれば、 https://mail.haskell.org/pipermail/haskell-cafe/2008-January/038756.html に案内され、疑問が解消されるはずだ。
374 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 19:23:38.05 ID:evrxvkuv.net] はあすこぅ
375 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:04:12.27 ID:1Ttf2z2u.net] Cabal ケバール
376 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:21:41.48 ID:mJ/QVcTI.net] ghcよりcabalより先にstackを入れる。
377 名前:デフォルトの名無しさん [2017/05/04(木) 00:29:46.99 ID:M/Hnicnq.net] YouTubeをhaskellで検索かけりゃいくらでも聞けるだろ
378 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 03:31:51.49 ID:gAUNCpWB.net] haskellでキーボードから入力した値をそのまま出力する場合、必ず n <- getLine putStrLn n のように一旦変数に束縛する必要がありますか? 一行では書けないのでしょうか
379 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 03:52:33.18 ID:0GlJDnqX.net] main = getLine >>= putStrLn
380 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 03:55:26.58 ID:gAUNCpWB.net] >>374 ありがとうございます
381 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 04:12:42.09 ID:0GlJDnqX.net] ちなみに main = do ____n <- getLine ____puStrLn n と main = getLine >>= \n -> putStrLn n と main = getLine >>= putStrLn は、等価。 do形式はモナド形式を手続き型っぽく見せる糖衣構文に過ぎない。 最後のはモナド形式とカリー化を利用した部分的用で見た目の変数を無くしただけ。 モナド形式だとプログラム全体が一つの式だと言うのが良く分かる。
382 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 05:28:10.40 ID:DGL+h71J.net] ___n は誤解を招く _korehaTsukaimasen
383 名前:デフォルトの名無しさん [2017/05/04(木) 06:57:02.33 ID:M/Hnicnq.net] getLine >>= putStrLn じゃなくて interact はダメなん?
384 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 12:19:44.49 ID:xtfIuMNG.net] そもそも、getLineは1行しか読まないしな
385 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 14:29:46.30 ID:gUFA1lSr.net] >>378 interactは変数に束縛してごにょごにょする処理を隠蔽してるだけだから 「必ず一旦変数に束縛する必要がありますか?」の答えとしては若干嘘かも
386 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 16:34:00.03 ID:UGR/WMPx.net] 束縛ってコード(人間の視認性)レベルの話で、コンパイラが吐くバイナリではキャンセルされてるんじゃないの? バインドで(ポイントフリーみたいに)やったのと変わらないようになってんじゃないの
387 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 21:55:20.21 ID:9ig94Wv/.net] Haskell 教養としての関数型プログラミング 単行本 ? 2017/4/15 重城良国 (著) https://www.amazon.co.jp/dp/4798048062/ 824ページって超大作だな Haskell本の決定版か?
388 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 21:56:45.82 ID:9ig94Wv/.net] Haskellによる関数プログラミングの思考法 単行本 ? 2017/2/28 Richard Bird (著), 山下伸夫 (翻訳) https://www.amazon.co.jp/dp/4048930532/ こっちはどうなのだろう? 感想求む
389 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 23:25:45.93 ID:e6epJNrq.net] >>383 >>201 数独ができるようになるけど、ワイはすごい本の方が好きや
390 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 23:34:27.84 ID:RNJ7gaAH.net] すごい本やない。 すごい「H」本や。
391 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 23:53:12.22 ID:fZIf3DTG.net] 初めてのCっぽくて好き
392 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 00:17:40.31 ID:gZLP5YIG.net] getLineでコンソールから手動入力する時、バックスペースとかで修正出来ないのってhaskeline使う以外に何か方法無いのかな?
393 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 00:28:11.74 ID:MHgXx5Es.net] rlwrapとか?
394 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 02:13:17.67 ID:gZLP5YIG.net] うーん、そういうのじゃないな
395 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 18:51:05.79 ID:smzwp1ku.net] Comonadでオブジェクト指向を実現できるって聞いたけどほんと?
396 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 23:14:55.28 ID:6S4yhtdG.net] スレ違いかもしれませんが、2つのリストに一致する項目だけ抜き出したリストを作るみたいな問題があったとき、 集合論だと集合Aと集合Bの積集合A∩Bを求めるような解き方をすると思うのですが、Haskellのようにラムダ計算が 基になっている関数型言語だとそもそもの考え方や物の見方が違ったりするのでしょうか? Haskellを学び始めたはいいんですが、結局他言語のパラダイムを無理やりHaskellに適用させているだけのような気がして不安です
397 名前:デフォルトの名無しさん [2017/05/07(日) 01:09:26.23 ID:875uFfQS.net] >>391 質問に答えるだけの知識を持ち合わせていないので一応コードだけ intersect :: Eq a => [a] -> [a] -> [a] intersect xs = filter (`elem` xs) リスト内包表現でも書けるけど関数型っぽいのはこういう書き方なのかも
398 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 01:46:15.37 ID:s5HwRSgU.net] >>391 チューリング完全という意味で、他言語とHaskellは等価というのが数学的な見方だな もし言語が複数存在する原因を知りたいなら、数学的な見方はほとんど役に立たないな
399 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 02:07:21.95 ID:J1yK9zIW.net] >>392 >>393 ありがとうございます チューリング完全でさえあればそれ以上は計算モデルより言語仕様に合わせた方が良さそうですね いろいろ試してみて、一番スマートに書けるように精進します 今のところHaskellが一番面白いです
400 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 13:16:11.57 ID:J1yK9zIW.net] >>392 ちなみに、mapやfilterとリスト内包表記は内部的にはここが違うとか、パフォーマンスが 違うとか、あるいはこういうときはこっちの方がいいとかはあるのでしょうか?
401 名前:デフォルトの名無しさん [2017/05/07(日) 16:32:45.84 ID:YN83nmbH.net] リスト内包表記はconcatMapを使うからネストできる [f x y | x <- xs, y <- ys, p x y] == concatMap (\x -> concatMap (\y -> if p x y then [f x y] else []) ys) xs パフォーマンスは実際にghcがどういうコードを吐くかだけど そのままconcatMapでもmapやfilterと同じような最適化が行われるし 必要なければリストの結合も行われない
402 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 16:37:16.65 ID:f0nSghKy.net] リスト内包のほうがパフォーマンスでるらしいけどHaskellのパフォーマンスチューンングは難しいから当分気にしないほうがいい 待ってる間に線形型で楽々チューニングできるようになるかもしれないし
403 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 16:58:43.74 ID:3IJNEy2Z.net] >>396 >>397 ありがとうございます ネストの有無などで自分なりに考えながら使ってみます
404 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 17
] [ここ壊れてます]
405 名前::18:00.54 ID:m17h7+4k.net mailto: 内包表記と再帰を組み合わせることも可能。 夢が広がりング。 [] [ここ壊れてます]
406 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 22:35:33.72 ID:t8zqh9+K.net] Web系でもいいのですが、フリーウェア(できればオープンソース)のアプリケーションで、 Haskellで作られたものって何かありますか? Haskellプログラマだけでなく、一般の人も使っているもので。 もしくは、みなさんならHaskellでどんなアプリケーションを作ってみたいですか?
407 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 22:48:03.22 ID:ESaiO+gS.net] Pandocあたりは比較的広く使われている印象
408 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 23:26:23.39 ID:xgXJ2OQ8.net] あとはShellCheckだな。bash初心者はとにかくこれ使えって話題のシェルスクリプト更正ツールだ。
409 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 00:31:05.17 ID:XyXCIute.net] オーケーグーグル Haskellで日本語文字列(Shift-JISやEUC-JP)のファイルを正しく処理する方法
410 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 17:26:21.06 ID:kaDHepSW.net] みんな夢がないね。 ぼくなんてHaskellプログラム一つでお城のような家が建てれたよ。
411 名前:デフォルトの名無しさん mailto:age [2017/05/08(月) 22:42:37.72 ID:0FON9WNL.net] >>400 です。 ありがとうございます。 Haskellで作られたアプリケーションの方は2、3個紹介されるかなと思ってましたので、 まぁ予想通りです。 ですが、作りたいアプリケーションのレスが1日経っても皆無なのは驚きました。 (>>403 がいまいち分からない。これは私へのレスですか?) 私は年賀状の宛名をデザインするWebアプリを作りたいと思い、 「Beginning Haskell」を読んでWebアプリの勉強中です。 皆さん、作りたいものは何もないんですか? ゲームとかオーサリング系とか、マストドンをhackするツール(crackではなく)とか...
412 名前:デフォルトの名無しさん [2017/05/08(月) 22:56:09.94 ID:9wTmIyqX.net] GitHubとかでHaskellで検索かけりゃ何か出てくるんじゃねーの?
413 名前:デフォルトの名無しさん [2017/05/08(月) 23:03:23.31 ID:a/GZsbco.net] 論理に基づく人工知能を作るならHaskellがぴったりじゃないかと思うんだけど、プログラミングの技能も論理学の知識もないから作れない 細々と勉強はしてるけど
414 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 23:31:16.69 ID:Vtk8jBj4.net] 自動イタ電器とか作れや
415 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 23:32:41.17 ID:9whwcEDU.net] 達人プログラマーになりたい欲求はあるけど何かを作りたいっていう欲求は薄いわ
416 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 23:43:37.38 ID:iNFmh6sq.net] やはりゲームだな。あとはGUIアプリ。なにかのエディタのようなものがいいな。 Haskellで複雑な状態を扱うのは困難、と言ってる人らに反論したい。 実際のところはどうなのか想像する前に、まずはそういう状況に直面する必要がある。
417 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 23:49:55.75 ID:iNFmh6sq.net] EmacsのプラグインもHaskellで書きたい。正格データと遅延データを色分けして表示できたら嬉しそうだ。 GHC API を使えばできるかもしれない。 なんにしてもHaskellでやりたい。俺はもうLispは嫌だ…
418 名前:デフォルトの名無しさん mailto:age [2017/05/08(月) 23:59:34.03 ID:0FON9WNL.net] >>409 どういうことですか? 私が知っている達人プログラマ、要するにハッカーですが、 彼らはみな何かを作ってました(ます)。 なので、作ることに関心が無い達人プログラマというのが想像しにくいのですが。 あ、競技プログラミングのトッププレーヤーとかですか?
419 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 00:07:55.03 ID:CfiI0NLl.net] >>411 Haskellでエディタ書いてくれ common lispで書いたエディタもあることだし
420 名前:デフォルトの名無しさん [2017/05/09(火) 00:12:52.22 ID:PrpfKmLN.net] 作る以外に改造とかに気合入れる人とかもいるんじゃね?
421 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 00:50:22.97 ID:j9MX7/aM.net] >>413 今は外部言語でかけるしくみがあるから、エディタそのものを置き換えなくてもいいんだ。 それが現実的だと思う。Emacsのような巨大なものは厳しい。見上げるだけで首が疲れるよ。先人は偉大だね。
422 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:12:37.98 ID:jmx2rYXI.net] >>400 写真が趣味だから、Jpegのカラー画像をモノクロやセピアに変換するツール作りたくてHackage漁ったら使い易そうなのがCライブラリ使ってるんで、そう言うの入れやすいLinux導入。 暇があったらチマチマ作りたいけど、暇がない。。。
423 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 11:12:04.61 ID:TCAyfaNB.net] itchynyタソがcamを作った時、一部の画像ファイルが(ライブラリのせいで)読めないのに腹を立てて だったらhaskellで書いてやると一念発起したのがcamh。いまでも活躍してます。 lesspipeに組み込むとか。ちなこれはimlib2を使ってるので大抵の画像は読める。
424 名前:デフォルトの名無しさん [2017/05/09(火) 22:12:03.59 ID:PrpfKmLN.net] haskellを業務でつかうような仕事に転職すればOK
425 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 22:21:49.15 ID:kDNeTnk7.net] 仕事では使わんが、概念というかエッセンスはめっちゃ役に立ってるな 興味本位で触っといて良かったとマジ思う
426 名前:デフォルトの名無しさん mailto:age [2017/05/09(火) 22:47:25.87 ID:1T1N541v.net] >>419 その手の話ここで時々聞くけど、Haskellの何が何にどう役だったのか、 具体的な話を聞いたことが一度もない。 $$$な状況でHaskell未経験のヤツは***だったけど、経験者の俺は###できた、とか。 そういう事を具体的に語ったブログとか無いんかな? 英語でも構わないんだけど。
427 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:13:21.51 ID:0m9lmeXL.net] 比較するなら同一のものに対して、Haskell でのアプローチと その他のアプローチをする必要があるので、 そんな贅沢な時間の使い方するやつはユーザ数が多くないと現れないんじゃないかな?
428 名前:デフォルトの名無しさん [2017/05/09(火) 23:21:27.66 ID:PrpfKmLN.net] tanakhにhaskellやっててよかった話を要求するか
429 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:24:21.68 ID:xmCSMJsq.net] C++やC99以降みたいな「どこでも変数宣言」を嫌うようになった 宣言した位置と使う位置が離れるのは書き方が悪いからだ、というかなんか
430 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 00:12:52.35 ID:HNykyFkL.net] 高階関数を多用する様になったとか、関数の純粋さを気にして関数分割する様になったとか 設計やコードが以前より分かりやすくなってテストもしやすくなったと思う カリー化や部分適用がもっと簡単に出来たらってモヤモヤする事も多いけど
431 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:17:13.25 ID:k+Fw34TB.net] 別に関数型プログラミングって今まで出来なかったことが出来るようになる手法じゃないしな コードを直感的に書けるようにすることでプログラムの全体的な質を高める手助けをしてくれるような感じ メリットを語れと言われたら一晩中でも絡めちゃ語れる
432 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 07:52:30.59 ID:JBi0Fo4L.net] 関数型とは月極、定礎に匹敵する巨大グループだがそれが存在する証拠はない 統計学的には母集団が実在する証拠を出す義務はない
433 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 18:59:47.60 ID:oW0tCmUv.net] 私は、Windowsで大きなランタイムとか必要なく 実行形式のバイナリを作れるのが助かってる。 小さいバッチプログラムとか。
434 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 05:52:26.63 ID:0s1wVfC9.net] ghcmod-vimってstack環境で動かないのな
435 名前:デフォルトの名無しさん [2017/05/12(金) 14:16:42.66 ID:jiodGJOF.net] haskelは使わないけど関数型の勉強はすごいためになる ライブラリが提供する地雷メソッド見抜けるようになった
436 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 20:57:00.05 ID:nS2W/WX/.net] 意識的にオブジェクトをモノイドにしたりするようになった
437 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 21:47:41.07 ID:YH3Rdz9Y.net] 皆の言う関数型の経験が生きた事をアドバイスしてるオブジェクト指向の本が出ないのは何故か
438 名前:デフォルトの名無しさん [2017/05/12(金) 22:37:15.98 ID:ZlSd19FP.net] 本を書くのが楽な作業だとでも思ってるの?
439 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 22:41:48.24 ID:QfK6Pl49.net] その内容で一冊書きたいならそれをテーマにした小説にしてページを埋めないとだな いいものはみんな本になるはずという前提がそもそも間違ってる
440 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 22:48:49.78 ID:YH3Rdz9Y.net] >>432 楽かどうかの話じゃなくて、皆の言ってる事はここ数年の関数型の特長じゃないじゃん ずいぶん昔から変わらない関数型の特長でしょ 関数型のいいところを手続き型(オブジェクト指向)にも取り入れようとし出したのもかなり昔の話だし なのに、ここ数日このスレで挙げられた事が本になっていないのが不思議なんだよ 和書はともかく洋書でも無いじゃん
441 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:09:37.73 ID:7Z9U0QOC.net] ハスケル環境整えやすいのって
442 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:10:00.54 ID:7Z9U0QOC.net] Windows debian?
443 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:14:42.17 ID:hYOIVOdy.net] >>431 うーん。。。 関数型言語じゃなくても気を付ければ出来るし、それがデザパタとかMVC/MVVMになってるからじゃないかな。 だから関数型言語はエッセンスを触接理解するのに使って、実用は普通の言語。 特にHaskellはIOと純粋関数が分かれてるからコマンドアプリでさえファイル=M、コマンドアプリ=VM、コンソール(ターミナル)や出力するGUI部品=Vって非常に明確。 使ってて、ああ、MVVMってこう言うことかって思った。 何つーか、MVCよりもMVVMはもっとCを広く解釈してるからVMなんだなぁとか。
444 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:22:55.11 ID:7Z9U0QOC.net] C++でわからんでJAVAで半分誤解して ruby使ったときにオブジェクト指向理解したのとよく似てるな
445 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:27:18.79 ID:hYOIVOdy.net] 経験上思ったのはオブジェクト指向は先手先手で先を読んだ設計が重要。 (だからオブジェクト指向設計とかがプログラミング以外にも必要) 関数型言語はわりと行き当たりばったりでもどうにかなるし、それはオブジェクト指向じゃない普通の言語(CとかPascal)でも活かせる。 だから、メソッドチェーン使った宣言的なオブジェクト指向よりも泥臭い手続き的なプログラミングに新たな視点(設計の幅)を与えてくれる感じ。 (要するにメソッドの中身を書くときに役立つ)
446 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:33:36.39 ID:qMDptb/r.net] OOPはプロパティの値を書き換えてなんぼ、インスタンスの振る舞いをメソッド内で完結させて なんぼだからまぁそりゃメソッド内くらいにしか関数型のパラダイムは取り入れられないよね
447 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:50:28.11 ID:7Z9U0QOC.net] >>439 プログラム組む前に紙と鉛筆でじっくり図書いたことないかえ? ライブラリ使うだけの時も恐怖でそうしてた。
448 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 01:35:42.34 ID:tHJGZUH8.net] >>431 二つ以上の言語を使いこなす事をアドバイスしてる本ならあるよな 例えばシェルスクリプトとC言語の二つ ここらへんではオブジェクト指向は必要ないし
449 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 11:47:21.81 ID:LpfjHhl9.net] >>436 stack使うならどっちでも楽じゃない?
450 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 15:11:20.18 ID:7Z9U0QOC.net] >>442 ほとんど知識のないまっさらの状態 ならそうだけど、 Cは覚えること山ほどあるぞ
451 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 17:01:20.26 ID:GwlKz+MG.net] シェルはCのmain関数を呼び出すだけだからよかった なぜmainではない任意の関数を呼び出す必要がないのか なぜHaskellはCの任意の関数を呼び出すのか 答えを暗記する前によく考えてみれば、覚えることが減るんじゃないか
452 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 17:27:12.08 ID:1EsAZpPG.net] Cよりjavaの方が覚えること多いよ
453 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 22:08:08.69 ID:GC0/nJum.net] >>440 うーん。。。 上手く説明しきれてないな。。。 メソッドの中身書いてる時、手続き的なコード書く事多いけど、 設計変更の際に手続き的なコードだと破綻して新たにクラスを作ってオブジェクト指向的なコードに変える事があるんだけど、Haskell視点が入る事で一見破綻したコードでも、何とか破綻させずに改修できる目処が立つ事が増えた。 何つーか、手続き的なコードからオブジェクト指向的なコードへの切り替えを遅らせる。 手続き的なコードを延命する事が出来るようになったって感じかな。
454 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 22:42:27.32 ID:Xpw0Rhcm.net] >>446 Cはコンパイラというかリンカのオプションが多い JITコンパイラは覚えることが少ない
455 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 22:59:11.16 ID:qMDptb/r.net] Javaはデザパタも覚えなきゃ話にならんから…
456 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 23:34:24.50 ID:ZYwAYCy+.net] Haskellは初めからデザパタを、それと気づかないまま強制されているような窮屈さを感じる
457 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 23:36:04.40 ID:GC0/nJum.net] それが仕事に活きるとも言える。