- 1 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:32:37.61 ID:0GjTSBdX.net]
- いざ、語ろうぞ。
前スレ 次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1479434349/
- 2 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:33:46.72 ID:7Nq7SR91.net]
- >>1
乙です。
- 3 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:36:55.91 ID:Xp+0sQ+z.net]
- おつおつ
- 4 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:43:38.85 ID:2PZ2/Gs1.net]
- >>1
乙乙!! 前スレ >>998 落ちこぼれのおいらでさえ半分は理解出来た。 (ちなみに、マージソートは図解されたアルゴリズム入門書読んでやっと理解してコード書けたと言う低脳っぷりだ) そいつ才能無い。 予言する。そいつ役立たず。 若かりし日のおいらでさえ触った事ないVBの仕事渡されて、その日にVB本買って勉強しながら書いてたっチューに。 分からんかったら質問しろよ。 入門書渡される有り難みも分かれよ。
- 5 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:56:37.03 ID:7Nq7SR91.net]
- >>4
まあ、意識はちょっと低いのかもですね。 Haskellは既存のパラダイムが通用しにくいので新参の入るいいチャンス、 却って染まってない方がいいと吹聴して、 よーし、じゃあ一発逆転したるとボルテージが上がったところであれだったから寂しかった。 前スレで統合開発環境の話がでてたけど、みなさんどんな感じですかね? 自分はemacsにghc-mod、company、hlintあたり(gitのチュートリアルのやつ)を入れてます。 布教できそうになったら、この辺の環境を整えてあげようと思ってますがご意見いただきたい。
- 6 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 22:09:51.95 ID:2PZ2/Gs1.net]
- 本格運用ならおいらの出番はない。
terapadがお気に入りだから、tab一回をスペース4個にする以外何もしてない。。。 最近日本語情報も増えてきたと言ってもYesodは最低限のwebアプリ作ってお終いばかりだから、英語出来ないとキツイかもね。 頑張って。
- 7 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 22:29:17.59 ID:j6x3YnbP.net]
- 前スレ903
>sum = foldr (+) 0 >product = foldr (*) 1 自分が思うにsum=, product=みたいに関数の定義はせずに、 使うところに直でfoldr (+) 0、foldr (*) 1 って書けるのが良い所なんじゃないかな…と というのは、まずなにより定義する関数の数が減るし、 しかも使う所に(短くコンパクトに)処理の定義が書かれてるから、 わざわざ関数の定義部を参照しなくてもなにやってるか分かってより可読性が上がると思うから メタレベルのロジックを抽象化して関数にしといて、その場での個別具体的な処理は 一時的な変数のごとくその場で合成して使い捨てる的な書き方を自分は良くするんだけどアンチパターンなんだろうか…
- 8 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 22:30:03.25 ID:ria0yk5C.net]
- 「7週間で7つの言語」だっけ?
ちょっと古いけど徐々に関数型が理解できるような構成になってるから最初に特定の言語の本すすめるよりいいかも
- 9 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 22:57:21.83 ID:7Nq7SR91.net]
- >>6
おけ、頑張ります。Emacsもいいっすよ。 >>8 あの本、Haskellの辺をちら見ですが所々ギャグ入ってて面白げでした。 周りから徐々に興味をもってもらうのは大事ですね。次は前スレで挙げられてた本と共に検討してみます。
- 10 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 23:03:47.51 ID:7Nq7SR91.net]
- >>7
自分もスクラッチですね。 高階関数とλ式の組み合わせの良さって、その場でのプロセスの可読性とフットワークの軽さだと思ってます。 長けりゃwhereあたりで下に一時的に書いておくくらいで。 諸氏の意見を自分も聞いてみたいです。
- 11 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:03:25.90 ID:eJbIlXCt.net]
- F#で関数型っぽく?FizzBuzz
let Fizz x = (x%3=0, "Fizz") let Buzz x = (x%5=0, "Buzz") let FizzBuzz x = (x%15=0, "FizzBuzz") let compose flist x = let bind z f = match z |> fst |> f with |(false, _) -> z |(true, y) -> (fst z, y) List.fold bind x flist let transformer = compose [Fizz; Buzz; FizzBuzz] [1..50] |> List.map (fun x -> (x, string x)) |> List.map transformer |> List.map (fun x -> x |> snd |> printfn "%s")
- 12 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:11:44.19 ID:ekfokMCG.net]
- // Java8で関西型FizzBuzz
IntStream.rangeClosed(1, 1).mapToObj(num -> { if (num % 15 == 0) { return "FizzBuzz"; } else if (num % 5 == 0) { return "Buzz"; } else if (num % 3 == 0) { return "Fizz"; } return num; }).forEach(System.out::println);
- 13 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:38:59.43 ID:VGD3y4dr.net]
- >>12
関数型っつーかメソッドチェーンでは。 RubyとかJSでよくみるやつ。 JavaScriptで学ぶ関数型言語みたいな本を見たときは詐欺乙と思ったなそういえば。
- 14 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:42:05.20 ID:32IkYRZ8.net]
- で、スレタイに上がってる言語はいつ実用的になるのよ?
企業がバックにいるGo、Rustはともかく Haswellとか関数型信者のマウンティングにしか使われてない現状だし
- 15 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:43:39.06 ID:32IkYRZ8.net]
- 別に言語体型の勉強でHaswellとか学ぶのは勝手にすればいいけど、
わざわざ既存の言語のコミュニティに入ってきて「オブジェクト指向は古い!これからは関数型!」とか ほざかれると目障りで仕方ない
- 16 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:48:08.35 ID:ekfokMCG.net]
- >>15
Haswellは時代遅れ Cannonlakeやで、池沼のお兄さん
- 17 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:50:28.80 ID:RMJaLK6d.net]
- >>14
Go Googleの犬になるなら既に実用的 Rust 書くまでのハードル高いわライブラリがゴミだわでそのうち消える Haskell 高等選民様によって細々と使われ続けるが永遠にターンは来ない Scala ゴミ Erlang/Elixir ニッチな需要で生き残る
- 18 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:50:51.11 ID:eJbIlXCt.net]
- >>11と>>12の違いは何なんだろうか…
感覚的な話だけど、会社やチームづくりに例えるなら >>12は仲良く内製で開発(処理)する感じ >>11は派遣使ってアウトソーシングしまくる感じがしますねぇ…
- 19 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:55:00.32 ID:32IkYRZ8.net]
- そうそうHaskellだった
どう考えてもオブジェクト指向の方が応用範囲が広い GUIアプリとかHaskellで作れるのか?やるにしても気が遠くなるわ
- 20 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:57:25.21 ID:32IkYRZ8.net]
- まーjavaとc++にラムダの存在を教えてくれた事だけは感謝だわ
あれは確かに便利。
- 21 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 02:57:51.45 ID:oncvvJ9K.net]
- 剰余演算を全く使わないFizzBuzzがあったような…こうだっけ
import Data.List (zipWith3) import Data.Monoid data FizzBuzz = None | Fizz | Buzz | FizzBuzz | Number Int deriving (Eq, Show) instance Monoid FizzBuzz where mempty = error "something wrong" None `mappend` None = None None `mappend` Buzz = Buzz None `mappend` Number n = Number n Fizz `mappend` Buzz = FizzBuzz Fizz `mappend` _ = Fizz Buzz `mappend` _ = Buzz FizzBuzz `mappend` _ = FizzBuzz _ `mappend` _ = mempty toString :: FizzBuzz -> String toString (Number n) = show n toString fb = show fb lis = zipWith3 (\x y z -> x <> y <> z) (cycle [ None, None, Fizz ]) (cycle [ None, None, None, None, Buzz ]) [Number n | n <- [1..]] main = mapM_ (putStrLn . toString) $ take 100 lis
- 22 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 03:01:23.24 ID:VGD3y4dr.net]
- >>19
HaskellからC叩けるから、gtkなりQtなり使えば作るだけなら気は遠くならんぞ? オブジェクト指向と関数型は問題へのアプローチの仕方が違うだけで「オブジェクト指向の方が応用範囲が広い」はガセだ。 「オブジェクト指向は古い!これからは関数型!」とか言って殴り込んでくるやつが目障りなのは激しく同意するが。
- 23 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 03:01:59.08 ID:32IkYRZ8.net]
- 確かにマルチスレッドという問題が普通の現場でも表面化してきたのは頭の痛い問題だが、
それに対する答えが関数型とは全く思えないね。 確かにマルチスレッドの問題単体で見たら関数型の方が優れているかもしれないが、 それだけのためにオブジェクト指向のメリットを全部捨ててるんだもんなぁ。 こりゃ普及せんわと
- 24 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 03:18:20.25 ID:VGD3y4dr.net]
- オブジェクト指向といえばHaskellのLensって今どんな感じなんだろう。
- 25 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 03:50:30.23 ID:ashgYgUc.net]
- >>11
F#もうちょういシンプルに書いてよ https://www.rosettacode.org/wiki/FizzBuzz#F.23
- 26 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 04:35:42.91 ID:UIkULlkI.net]
- >>21
fizzbuzz(Max) :- fizzbuzz(M,A),writef('%w ',[A]),Max = M,!. fizzbuzz(M,A) :- fizzbuzz([_],M,[M,M,fizz,M,buzz,fizz,M,M,fizz,buzz,M,fizz,M,M,fizzbuzz],[],A). fizzbuzz(Ln,I,L,[],A) :- fizzbuzz(Ln,I,L,L,A). fizzbuzz(Ln,I,L,[A|R],A) :- length(Ln,I). fizzbuzz(Ln,I,L,[_|R],A) :- fizzbuzz([_|Ln],I,L,R,A).
- 27 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 04:44:39.39 ID:1dYlSNDw.net]
- OCaml、F#「!?」
- 28 名前:デフォルトの名無しさん [2017/02/12(日) 04:49:45.47 ID:eJbIlXCt.net]
- >>21
書き直してみた もはや最速DSLっぽい何かに… let if_true_then flist x = let bind z f = match z |> fst |> f with |(false, _) -> z |(true, y) -> (fst z, y) List.fold bind (x, string x) flist |> snd let Fizz x = (x%3=0, "Fizz") let Buzz x = (x%5=0, "Buzz") let FizzBuzz x = (x%15=0, "FizzBuzz") [1..50] |> List.map (if_true_then [Fizz; Buzz; FizzBuzz]) |> List.iter (fun x -> printfn "%s" x)
- 29 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 04:57:02.22 ID:eJbIlXCt.net]
- >>28は>>25へを意図してた
F#初めて書いたけど無限にリファクタリングしたくなるな楽しくて
- 30 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 05:00:54.45 ID:1dYlSNDw.net]
- あ、>>27は>>22へのレスね。
オブジェクト指向関数型言語なのに普及しやしねぇ。。。
- 31 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 09:15:26.58 ID:aVrWxIrs.net]
- Haskellにはoopの機能が無い?
Smalltalkさんのことバカにしとるんですか?
- 32 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 09:47:43.03 ID:1dYlSNDw.net]
- HaskellにOOPは無いよ。
なぜsmalltalk?
- 33 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:04:50.15 ID:ekfokMCG.net]
- OOPとFPを創聖合体させたScalaが最強なんやなって
- 34 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:11:27.09 ID:FUIQXWCG.net]
- どんな言語使っても糞なものしか作れんやつはいる。
まずは「プログラミング作法」でも読めと言いたくなる馬鹿が多すぎる。
- 35 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:15:06.25 ID:pm4QJbUk.net]
- >>34
タイトル間違えてる時点で同類だろ せめて読んでから言おうな ソフトウェア作法とプログラム書法のどっちか知らんが
- 36 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:18:41.84 ID:pm4QJbUk.net]
- >>20
そもそもC++erとHaskellerは重複してるだろ お前も発言からマトモにプログラム組んでるやつとは思えない
- 37 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:21:55.70 ID:ekfokMCG.net]
- >>35
どっちンゴ?読んでみたい けど紙の本しかない遺物やんけ
- 38 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:26:15.52 ID:pm4QJbUk.net]
- >>37
すまん俺が間違えてた さらに同じ著者で別にプログラミング作法と言うのが出ている 自分の方が古い知識で大恥かいてしまった
- 39 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:28:10.46 ID:pm4QJbUk.net]
- >>34
謝罪はこっちに言うべきだったな 失礼な物言いで大変申し訳ない
- 40 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 10:34:32.79 ID:l4guIXkt.net]
- 爺の頭に浮かぶのは
記述言語にRATFORを採用した方の本
- 41 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 11:44:53.86 ID:ekfokMCG.net]
- 初版1980とか2000とか、ワイより年上で草生える
こんな時代から言われてることが、未だ当たり前どころか知られることもなく、 次世代言語が産まれては消え、ジャップランド土人は炎上プロジェクトとデスマ いったい何なんや?
- 42 名前:デフォルトの名無しさん [2017/02/12(日) 12:14:02.72 ID:D9dWxmTY.net]
- >>15
次世代言語スレにこの書き込みは面白いな ここまで見事なブーメランはそうそう見れないぞ
- 43 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 13:46:55.00 ID:SEA4QyVV.net]
- ブーメランで思い出した
GUIとオブジェクト指向は直交する概念だから、GUIと関数型の組み合わせでもOK
- 44 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 14:04:50.15 ID:mqpRMrYe.net]
- Prologはやっぱり凄いな。数値演算がない。lengthが隠してるのか。 >>26
- 45 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 14:10:48.77 ID:ekfokMCG.net]
- >>44
言うほどか? 正直何書いてるのかさっぱりわからんMMMM
- 46 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 14:57:40.58 ID:32IkYRZ8.net]
- >>42
俺のは苦情だよ。どうせQiitaとかでマウンティングしてる奴らが多そうだしなここ
- 47 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 15:08:07.55 ID:YSMQxpB5.net]
- 直近の次世代言語はTypeScriptだろうな
- 48 名前:デフォルトの名無しさん [2017/02/12(日) 15:11:57.61 ID:7CrFTlLt.net]
- >>46
>>14も>>19も>>23も苦情なの? わざわざ次世代言語のコミュニティにマウンティングしに来てるようにしか見えないけど
- 49 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 15:17:28.61 ID:32IkYRZ8.net]
- >>48
な、イラつくだろ? これと同じ事を日常的にやってるのが関数型信者(というよりHaskell信者)。
- 50 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 15:23:32.88 ID:ZBx4BhwO.net]
- 負けず嫌いでマウンティングしようと必死なんだけど、
叩くために持ち出した内容すら満足なレベルでなくて、失敗してる感じ。 オブジェクト指向の擁護側からも煙たがれてそうだね。
- 51 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 15:41:22.09 ID:ekfokMCG.net]
- >>49
お薬のお時間ですよ
- 52 名前:デフォルトの名無しさん [2017/02/12(日) 15:44:30.40 ID:hey2nQ+P.net]
- >>49
俺はどこにもマウンティングしたことないのに今被害受けてるんだけど? しかもその上さらに「な?イラつくだろ?」って勝ち誇られてるんだけど? Qiita に出没するとかいうよくわからん関数型信者よりおまえがうざいよ 嫌だ嫌だといってる相手と同じことして恥ずかしくないの?
- 53 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 16:16:33.77 ID:0v9V4t1K.net]
- >>49
お前他板も荒らしてそうだな。
- 54 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 16:20:13.28 ID:aRM3PRRH.net]
- 「相手は悪だからこちらの手段は正当である」ってどっかで聞いた理屈だな。
言語パラダイムも大事だが、周辺ツールや標準ライブラリの充実も大事じゃないかね。 そういう意味で「電池付属」を推してる次世代言語ってGoくらいか?
- 55 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 16:43:28.53 ID:Lac5VkvP.net]
- >>44
今日twitterにこのコードの解説が載ってたけど難しいですね。 わざとそうしているんですね。
- 56 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 17:04:14.13 ID:FjwSaYM1.net]
- >>44
Prologのプログラムは読むだけだと、どの言語より易しいっていう 印象ですが、このコードは難しいですね。剰余計算どころか計算が でてこない。Mが沢山ならんでいるのもわけが分かりません。
- 57 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 17:05:37.62 ID:SEA4QyVV.net]
- 競技プログラミングの類は難しい方が楽しい
相手がそういう競技を選んだから試合中はわざとそういうことをするのは正当である
- 58 名前:55 mailto:sage [2017/02/12(日) 17:20:26.48 ID:rzlVGyJj.net]
- >>56
>>22のコードはtwitterでPrologおじさんとして知られている方が 書き込んだのではないかな。今日の午前中に連続して5通くらい、 このコードの解説を書き込まれていました。
- 59 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 17:31:14.49 ID:ashgYgUc.net]
- PrologのはClojureの例に載ってたこれと考え方近いのかな?
いくら何も大文字一文字が多すぎな気がするが (take 100 (map #(nth (conj (cycle [% % "Fizz" % "Buzz" "Fizz" % % "Fizz" "Buzz" % "Fizz" % % "FizzBuzz"]) %) %) (rest (range)) )) #は部分適用 %は部分適用時に引数を差し込む位置 (nth [1,2,3] 2) => 3 (conj [1,2,3] 2) => [1 2 3 2] (take 5 (cycle [1,2,3])) => (1 2 3 1 2) (take 5 (range)) => (0 1 2 3 4) (take 5 (rest (range))) => (1 2 3 4 5) (#(nth % 2) [1,2,3]) => 3
- 60 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 18:09:04.18 ID:rzlVGyJj.net]
- >>59
Clojureのコードの方はメタな表現。Prologの方は非決定性の単純な再帰。 その違いはあるけれど、やっていることは同じのように思います。
- 61 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 18:53:57.11 ID:32IkYRZ8.net]
- 前スレ
981 デフォルトの名無しさん sage 2017/02/11(土) 20:43:04.84 ID:7Nq7SR91 >>978 >初心者はむしろJavaとかよりHaskellのが算数・数学に近いから馴染み易い。 これ、自分もそう思ってて、 会社の初心者のエンジニアにこう吹き込んでプログラミングHaskell渡したら、 舐めてんのか的なリアクションだったわ。 実績ある?布教したいので、うまいやり方を教えて欲しい。 983 デフォルトの名無しさん sage 2017/02/11(土) 20:50:51.13 ID:2PZ2/Gs1 それはもう、エンジニアとして初心者でも、それなりに手続き脳に固まってるんだと思う。 手前勝手だが、パブーにHaskell入門以前ってepubの本置いてるので、使えると思ったら読ませてみて。 (パブー Haskell で検索) あんまり純粋関数型言語ってブランドに振り回されてもいけないと思う。
- 62 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 18:55:17.88 ID:32IkYRZ8.net]
- 初心者のエンジニアにわざわざHaskellを布教する鬱陶しさ
それで嫌な顔されたら「手続き脳」
- 63 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:05:04.40 ID:ekfokMCG.net]
- な、手続き脳だろ?
- 64 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:06:39.11 ID:ElZAn973.net]
- 手続き脳は悪口じゃなくて自身の経験からですが。。。
私はJavaも触った上でHaskellから得られるものは多いと言ってますが、あなたは? (C#がメインですが)
- 65 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:12:03.87 ID:VGD3y4dr.net]
- >>64
>>20 >>23 って言ってるから何言ったってしゃーないんじゃね? 坊主憎けりゃ袈裟までって奴だと思う。 実際Haskell原理主義者がうざいっていうのは超同意するところではあるんだけど、 本人がその原理主義者と同じ行動してりゃ世話ないわ。
- 66 名前:26 mailto:sage [2017/02/12(日) 19:18:08.80 ID:UIkULlkI.net]
- >>56 fizzbuzz(M,A) :- fizzbuzz([_],M,[M,M,fizz,M,buzz,fizz,M,M,fizz,buzz,M,fizz,M,M,fizzbuzz],[],A).
この本体( :- の右側)のfizzbuzzの第三引数のリストのMがPrologプログラマにとっては 盲点なんです。本来は [1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz] であるところを全部Mを置いたらfailしてしまうと考えてしまうのです。 ところが、実際に利用するのは先頭の要素だけ。一時的に [1,1,fizz,1,buzz,fizz,1,1,fizz,buzz,1,fizz,1,1,fizzbuzz]となったとしても 次はバックトラックしてこの束縛は解消してしまいますから。POPして出てくるのは どれもMで、すなわち第二引数と同じであるサインが出続けるというわけです。
- 67 名前:26 mailto:sage [2017/02/12(日) 19:26:06.73 ID:UIkULlkI.net]
- それではfizzやbuzzの時はどうなのか。これはMではありませんから、
第二引数と無関係です。それでこのリストからPOPされたものが最後の 引数、すなわち、Xとなります。解です。 Mの場合はカウンターリストLnの長さがlength述語でMとなり、それがXと なりますから、1,2,4,7,8,11・・などが解として埋まっていくのです。
- 68 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:37:29.11 ID:32IkYRZ8.net]
- いやいや初心者でまだ仕事に使う言語覚えるだけで精一杯のやつに
Haskellなんか無理やり押し付けて、 それで拒否られてるのに性懲りもなくまだ布教しようとしてる奴はヤバイでしょ。 マジで宗教じゃん。
- 69 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:43:22.57 ID:SukjnWiy.net]
- 一番最初に授業でやったのがLispだったけど特に抵抗は無かったなぁ
でも関数型は手続き型に較べて抽象度が高い傾向にあるし頭弱い人には厳しいと思う
- 70 名前:デフォルトの名無しさん [2017/02/12(日) 19:46:25.84 ID:32IkYRZ8.net]
- まーウザがられるのは承知でやってるからね。
普段Haskell原理主義がやってる事と同じ事を そのままこのスレでやってみただけだし。
- 71 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:47:01.73 ID:52ZDIEYO.net]
- 仕事で使う言語とは別に、コードのまとめ方の勉強としてHaskell触らせるのがそんなにおかしいかね?
仕事で使わないものの勉強を押し付けられてたまるかっていうのは分からんでもないが、地力育てるって意味はあるしな。
- 72 名前:デフォルトの名無しさん [2017/02/12(日) 19:49:46.33 ID:32IkYRZ8.net]
- >>71
自分が新人の頃の事忘れてるんじゃねーの?お前 仕事を覚えなきゃいけない、職場にも馴染まなきゃいけない。 そんな大変な時期に新しくもう一つ言語なんて学ぶ余裕ある訳ないだろ。 押し付けって言うんだよそういうのは。 本人の為に全くなってない。
- 73 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:51:19.51 ID:ElZAn973.net]
- ?
教育期間とか無かったですか? Haskell教えるっと言っても、触り程度で良いですし。 それなら、半日も掛かりませんよ。 それでも十二分に大きなものを得られます。 (教えたいのはHaskellではなく、構造を見抜く力。Haskellはその手段) 次の日からはどうぞ仕事用の言語を覚えて下さい。
- 74 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:53:17.09 ID:52ZDIEYO.net]
- >>70
狂人の真似とて大路を走らば、即ち狂人なり。 って言葉知ってる?
- 75 名前:デフォルトの名無しさん [2017/02/12(日) 19:55:10.92 ID:32IkYRZ8.net]
- >>73
そういうのが有難迷惑って分からないかな? 自分がハマってるからって、仕事と関係ない言語を先輩後輩の力関係使って無理やり触らせるとか迷惑すぎるから。 そんな暇があるなら仕事のことを先に覚えたいに決まってるよね?新人君の気持ちとしては。
- 76 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:59:58.88 ID:ElZAn973.net]
- Haskellは手段書いてるやん。
言語覚えるより考え方覚える方が重要なのはプログラマなら分かるよね? 文法覚えたけど入門書以上の事何も書けないって奴を何人も見て来たよ。
- 77 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:06:49.91 ID:52ZDIEYO.net]
- >>72
Haskellじゃねーけど新人のころに直属のOJTに 仕事と全く関係無いLinuxの低レベル処理まわりの勉強させられたが その時には役に立たなくても数年後に効いたのよね。 全然考え方の違う言語さわって見聞広める分にはいいんじゃねえの。 まあ強制する謂れはないかもしれんが。
- 78 名前:デフォルトの名無しさん [2017/02/12(日) 20:08:53.00 ID:32IkYRZ8.net]
- だったら仕事を通じて必要なことを教えてやればいいだけ
訳の分からない言語の本読ませるより、そっちのほうがよっぽど新人も言う事聞くわ。
- 79 名前:デフォルトの名無しさん [2017/02/12(日) 20:09:42.74 ID:32IkYRZ8.net]
- >>76へのレスな。
- 80 名前:デフォルトの名無しさん [2017/02/12(日) 20:13:57.00 ID:32IkYRZ8.net]
- 大体自分が新人の頃考えてみろって話だよ。
死ぬほど覚える事一杯あるのに、仕事と関係ない言語の本なんて読んだってアタマに入る訳ないだろうが。 お前らだってHaskellだの勉強始めた時は ある程度仕事も覚えて余裕ができた頃だろうが。 自分と新人を同じ土俵で考えるなよ。
- 81 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:23:57.35 ID:VGD3y4dr.net]
- >>80
院生時代に学会と論文書きで死にそうになりながらHaskell覚えてすまんな
- 82 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:27:34.22 ID:VGD3y4dr.net]
- むしろ新人の頃は生まれて一度も使ったことがないC++と関連ライブラリの使い方覚えるのに必死だったな。
別に既存コードで使ってる部分ないのにわざわざテンプレートもやらされてからに。 それでも今役に立ってるからいいが。
- 83 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:27:37.03 ID:GC8FZ4sL.net]
- Haskell叩き名目に周囲に憂さ晴らししてるだけだろ
嫌儲に帰れ
- 84 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:32:01.96 ID:VGD3y4dr.net]
- いやHaskell原理主義者にヒャッハーされた憂はめっちゃ良くわかるんだよな。
だからこそそいつらと同じ事やって同じところに堕ちてりゃしゃーないわな感が強い。
- 85 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:33:07.80 ID:zPfOuuFT.net]
- 関数型のおいしい部分は別にHaskellじゃなくても非純粋関数型で学べるし
そういう部分だけ勉強したいって人にはHaskellじゃなくてもっといい選択肢があるんじゃないかな Haskellだとモナドなんかの初心者には理解しにくい部分がどうしても気になる 今は書籍もサイトも充実してきて、順を追って学べば誰でも既存のモナドを使えるレベルになれるけど それってこの場合の本来の目的とは違うし 今Haskellやってる人は自分も含めて楽しいからやってるって人がほとんどでしょ
- 86 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:36:00.02 ID:ol+GRPUy.net]
- マウンティングの為に悪意で薦めるか、相手のことを思い善意で薦めるか、そこじゃね?
- 87 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:36:05.84 ID:VGD3y4dr.net]
- >>85
そういう観点から言うとOCamlかScala辺りが候補か?
- 88 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:38:14.03 ID:bL+fjtQh.net]
- >>87
LispかOCamlでしょ ScalaはJavaやった後でなきゃ勧めちゃ駄目だと思う
- 89 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:39:59.90 ID:VGD3y4dr.net]
- Lispか。Scheme辺りなら処理系も手に入りやすいな。
- 90 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:46:37.83 ID:ol+GRPUy.net]
- それでSICP読めとかやると今度はLISP叩きが始まるのか。
- 91 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:47:36.66 ID:ElZAn973.net]
- >>80
むしろ新人の頃のが暇じゃね? どんなコード書く(書ける)か分からん新人に、いきなり仕事は振らない。 独習C渡されて、数日はひたすら入門書読んで練習問題解くだけだった。(教育期間) 確かに最初の仕事はCだった。(と言うか、C++でベターC) だけど、Javaだって当時仕事と関係無いけど自分で覚えた。 VBに至っては一回きりの仕事な上に、教えて貰ってすら無い。 覚えながら書いた。 文法覚えるより、練習問題させたかったんだと思うけどな。 割とすぐにVBだったし。
- 92 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:02:49.53 ID:b/z7m0Iw.net]
- LISPは括弧の羅列とか逆ポーランド記法とか、虫酸が走る要素満載だから
OCamlとF#で決まりだな
- 93 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:26:51.34 ID:Lac5VkvP.net]
- 関数型といっても、テキスト処理なんかには全く無力だから。
これからは前途多難だな。
- 94 名前:デフォルトの名無しさん [2017/02/12(日) 21:32:22.04 ID:D9dWxmTY.net]
- 括弧の羅列で虫酸が走るやつはLispエアプだってはっきりわかんだね
Cの中括弧の羅列のほうがよっぽどウザい
- 95 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:32:47.33 ID:9Y6cAsF4.net]
- SICP通ってないのにプログラマ面して次世代かたってんのか
だいたいGoのベースにあるCSPがいつの時代の概念かしってんのかよ 正直次世代の言語は次世代のハードがないかぎり生まれて来ない 現行のアーキテクチャでやりつくせることは概ねどんな言語でもやりつくせる あとはシンタックスシュガーのこのみでしかねえんだよ
- 96 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:33:18.96 ID:ashgYgUc.net]
- ClojureとF#で
JavaScriptで関数型っていうのを詐欺って書いてる人いたけど 実際にWebサイトいじくるコード書きながら部分的だけど関数型の考え方を身に付けることができるから 手続き脳からの脱却する初手としては有効だと思う
- 97 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:57:05.96 ID:ElZAn973.net]
- >>93
え、テキスト処理に関数型は向いてると思うが。。。 LLのが手軽ってだけで。 だからこそ堅牢性、並列性とテキスト処理必要なWeb鯖とか向いてるとも思う。
- 98 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:59:08.12 ID:RJmiTmR1.net]
- 今この時代SICP読むのはもう趣味でしょ
CTMとかなら得るものあるだろうけど
- 99 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 23:09:03.26 ID:wxhE3H1K.net]
- ocaml覚えた動機は、エロゲーからテキストをぶっこ抜くツールを
新作ゲームに対応させるため
- 100 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 00:49:48.93 ID:9ylADHSn.net]
- CTM欲しいけど日本語のはもう絶版なんだろうか
いずれにしてもSiCPの枠組みをでてない次世代ってなんなんだって話
|

|