- 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/
- 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の枠組みをでてない次世代ってなんなんだって話
- 101 名前:デフォルトの名無しさん [2017/02/13(月) 01:50:16.82 ID:bklcWYrm.net]
- >>91
> >>80 > むしろ新人の頃のが暇じゃね? > > どんなコード書く(書ける)か分からん新人に、いきなり仕事は振らない。 > 独習C渡されて、数日はひたすら入門書読んで練習問題解くだけだった。(教育期間) おま、それは典型的な駄目な部署の教育方法じゃねーかw そりゃ教える側はその方が楽だよ。本渡してわかんないことあったら聞けってのは。 でも、教育する、他人を指導する、という役割においては駄目駄目よ。 もっとちゃんと教えるところは新人で暇になんてならないから。
- 102 名前:デフォルトの名無しさん [2017/02/13(月) 01:52:14.35 ID:bklcWYrm.net]
- >>92
リスプは逆ポーランド記法じゃない
- 103 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 01:57:28.83 ID:3qGYyBZv.net]
- HP電卓か?RPL : reverse polish lisp
- 104 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 04:00:04.87 ID:gZ/8QOyo.net]
- >>97
本質的? に項変換だからね。関数型は。 論理型は推論と同一性。思想の解明というようなレベルの 知識プログラミングの領域では優劣は明らか。
- 105 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 04:24:42.25 ID:rgdFF/HE.net]
- >>104
ごめん、よく分からない。 具体例を挙げてもらえるとありがたい。
- 106 名前:デフォルトの名無しさん [2017/02/13(月) 05:33:46.88 ID:vGCo2kzU.net]
- あながちマウンティングしたいだけの奴が多いのは否定できないな
- 107 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 05:45:53.47 ID:gZ/8QOyo.net]
- >>105
思想を解明する知識プログラミングは殆ど手付かずだと思うので、極めて簡単な文例で。 「津軽海峡冬景色」からつぎの一節。論理型だと以下になります。二つのパターンを 見比べ、重ね合わせて理解します。こんな端的な表現が関数型にできるかということです。 私は帰ります --> 私は,帰ります. 私は --> 私,は. 私 --> [私]. は --> [は]. 帰ります --> 帰り,ます. 帰り --> [帰り]. ます --> [ます]. 文 --> 名詞句,動詞句. 名詞句 --> 名詞,後置詞. 名詞 --> [私]. 後置詞 --> [は]. 動詞句 --> 動詞,助動詞. 動詞 --> [帰り]. 助動詞 --> [ます].
- 108 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 06:41:13.16 ID:GOtEVvRl.net]
- それ、テキスト処理、違う
- 109 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 06:51:29.86 ID:dJZmi+77.net]
- >>101
ああ。 ブラックだったさ。 そんなしっかり教える環境なら、そもそも新人にも教える側にも選択の余地なんぞないだろ。 教え得るノウハウあるんだから。
- 110 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 06:57:26.15 ID:dJZmi+77.net]
- >>104
Prologと比べられればね。 論理の勉強はあんまりしてこなかったから、だいぶ初心者用の入門書しか理解出来なかったな。。。 Haskellは巷で流行ってるのよりは向いてると思う。 K1だかKL1だかって並列論理型言語があるらしいが、研究室専用なのか処理系には出会えてない。 触ってみたかった。
- 111 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 07:30:07.81 ID:gZ/8QOyo.net]
- 関数型は冗長な情報をより洗練されたものに書き換えるためのもの。
ところが、19-18世紀の大思想を読み解くというような対象は、 「ここに書かれていることは全て正しい」と仮定して掛かるような対象。 関数型のコンセプトとは全く合わない。論理型はテキストを述語化してから それ自体は動かさず、補間情報を探すもの。我々が過去の思想を理解しよう とする時の態度と一致する。
- 112 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 07:30:33.52 ID:PoWXNXBh.net]
- >>110
第5世代アーカイブにPCで動く処理系のソースがあったような
- 113 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 07:44:49.04 ID:dJZmi+77.net]
- 第5世代言語なのは知ってたけど、アーカイブなんてあったのね。
ありがとう。
- 114 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 07:57:27.96 ID:gZ/8QOyo.net]
- >>112 >>113
もう10年は前だとおもいますが、Webを整理して解消する際にCDが売り出され ました。最近、この再版を求める動きがありますが難しいようです。 Ubuntuを含むDebian系Linuxには32ビット時代はKL1のパッケージが載って いましたが、64ビットになってからはないようです。
- 115 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 08:06:53.18 ID:dJZmi+77.net]
- 10年前でも2007年。。。
90年代の遺産だと思っててごめんなさい。 そして、追加情報感謝です。
- 116 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 08:50:20.89 ID:fjEEeyAB.net]
- Σプロジェクトは出来たものが恥ずかしいゴミ過ぎて
この手の資料公開は無かったみたいだね。 https://ja.m.wikipedia.org/wiki/Σプロジェクト
- 117 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 08:54:34.63 ID:fjEEeyAB.net]
- これもオモロイ
シグマはどこへ消えた? www.yamdas.org/column/technique/sigma.html
- 118 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 09:42:44.82 ID:mcSza9v8.net]
- >>114
KL1は上田研究室が最後の砦ですね。 こういう時はInternet Archiveがありがたい。 並行論理プログラミング (KLIC version 3.01) www.ueda.info.waseda.ac.jp/software-j.html けいえるわん www.ueda.info.waseda.ac.jp/~takagi/kl1/ 並列論理型言語処理系 KLIC のページ web.archive.org/web/20100815015107/http://www.klic.org/software/klic/index.ja.html 第五世代コンピュータ プロジェクト アーカイブ web.archive.org/web/20150121033015/http://www.jipdec.or.jp/archives/icot/ARCHIVE/HomePage-J.html
- 119 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 10:33:26.43 ID:9gMxi0s2.net]
- >>107
これだけなら演算子作れば関数型でも簡単に出来そうな気が 利点が良くわからない
- 120 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 11:00:52.83 ID:gZ/8QOyo.net]
- >>119
それが論理型との違いでしょう。論理型は上の方の定義を書き終えたら できたできた。「私は帰ります」からはこれ以上の情報はない。この後で、 「どこに帰るのか」「いま私はどこにいるのか」「私とはどんな私だ」と いうような情報を引数に付加するかも知れないが、それは後の話です。
- 121 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 11:23:25.21 ID:nSPUHPPd.net]
- >>120
耳に入ってくる言葉の端々を述語として書き並べることが論理プログラミングと いうことですか?
|

|