次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 第二世代at TECH
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 第二世代 - 暇つぶし2ch1:デフォルトの名無しさん
17/02/11 21:32:37.61 0GjTSBdX.net
いざ、語ろうぞ。
前スレ
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 [無断転載禁止]©2ch.net
スレリンク(tech板)

2:デフォルトの名無しさん
17/02/11 21:33:46.72 7Nq7SR91.net
>>1
乙です。

3:デフォルトの名無しさん
17/02/11 21:36:55.91 Xp+0sQ+z.net
おつおつ

4:デフォルトの名無しさん
17/02/11 21:43:38.85 2PZ2/Gs1.net
>>1
乙乙!!
前スレ >>998
落ちこぼれのおいらでさえ半分は理解出来た。
(ちなみに、マージソートは図解されたアルゴリズム入門書読んでやっと理解してコード書けたと言う低脳っぷりだ)
そいつ才能無い。
予言する。そいつ役立たず。
若かりし日のおいらでさえ触った事ないVBの仕事渡されて、その日にVB本買って勉強しながら書いてたっチューに。
分からんかったら質問しろよ。
入門書渡される有り難みも分かれよ。

5:デフォルトの名無しさん
17/02/11 21:56:37.03 7Nq7SR91.net
>>4
まあ、意識はちょっと低いのかもですね。
Haskellは既存のパラダイムが通用しにくいので新参の入るいいチャンス、
却って染まってない方がいいと吹聴して、
よーし、じゃあ一発逆転したるとボルテージが上がったところであれだったから寂しかった。
前スレで統合開発環境の話がでてたけど、みなさんどんな感じですかね?
自分はemacsにghc-mod、company、hlintあたり(gitのチュートリアルのやつ)を入れてます。
布教できそうになったら、この辺の環境を整えてあげようと思ってますがご意見いただきたい。

6:デフォルトの名無しさん
17/02/11 22:09:51.95 2PZ2/Gs1.net
本格運用ならおいらの出番はない。
terapadがお気に入りだから、tab一回をスペース4個にする以外何もしてない。。。
最近日本語情報も増えてきたと言ってもYesodは最低限のwebアプリ作ってお終いばかりだから、英語出来ないとキツイかもね。
頑張って。

7:デフォルトの名無しさん
17/02/11 22:29:17.59 j6x3YnbP.net
前スレ903
>sum = foldr (+) 0
>product = foldr (*) 1
自分が思うにsum=, product=みたいに関数の定義はせずに、
使うところに直でfoldr (+) 0、foldr (*) 1 って書けるのが良い所なんじゃないかな…と
というのは、まずなにより定義する関数の数が減るし、
しかも使う所に(短くコンパクトに)処理の定義が書かれてるから、
わざわざ関数の定義部を参照しなくてもなにやってるか分かってより可読性が上がると思うから
メタレベルのロジックを抽象化して関数にしといて、その場での個別具体的な処理は
一時的な変数のごとくその場で合成して使い捨てる的な書き方を自分は良くするんだけどアンチパターンなんだろうか…

8:デフォルトの名無しさん
17/02/11 22:30:03.25 ria0yk5C.net
「7週間で7つの言語」だっけ?
ちょっと古いけど徐々に関数型が理解できるような構成になってるから最初に特定の言語の本すすめるよりいいかも

9:デフォルトの名無しさん
17/02/11 22:57:21.83 7Nq7SR91.net
>>6
おけ、頑張ります。Emacsもいいっすよ。
>>8
あの本、Haskellの辺をちら見ですが所々ギャグ入ってて面白げでした。
周りから徐々に興味をもってもらうのは大事ですね。次は前スレで挙げられてた本と共に検討してみます。

10:デフォルトの名無しさん
17/02/11 23:03:47.51 7Nq7SR91.net
>>7
自分もスクラッチですね。
高階関数とλ式の組み合わせの良さって、その場でのプロセスの可読性とフットワークの軽さだと思ってます。
長けりゃwhereあたりで下に一時的に書いておくくらいで。
諸氏の意見を自分も聞いてみたいです。

11:デフォルトの名無しさん
17/02/12 02:03:25.90 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:デフォルトの名無しさん
17/02/12 02:11:44.19 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:デフォルトの名無しさん
17/02/12 02:38:59.43 VGD3y4dr.net
>>12
関数型っつーかメソッドチェーンでは。
RubyとかJSでよくみるやつ。
JavaScriptで学ぶ関数型言語みたいな本を見たときは詐欺乙と思ったなそういえば。

14:デフォルトの名無しさん
17/02/12 02:42:05.20 32IkYRZ8.net
で、スレタイに上がってる言語はいつ実用的になるのよ?
企業がバックにいるGo、Rustはともかく
Haswellとか関数型信者のマウンティングにしか使われてない現状だし

15:デフォルトの名無しさん
17/02/12 02:43:39.06 32IkYRZ8.net
別に言語体型の勉強でHaswellとか学ぶのは勝手にすればいいけど、
わざわざ既存の言語のコミュニティに入ってきて「オブジェクト指向は古い!これからは関数型!」とか
ほざかれると目障りで仕方ない

16:デフォルトの名無しさん
17/02/12 02:48:08.35 ekfokMCG.net
>>15
Haswellは時代遅れ
Cannonlakeやで、池沼のお兄さん

17:デフォルトの名無しさん
17/02/12 02:50:28.80 RMJaLK6d.net
>>14
Go Googleの犬になるなら既に実用的
Rust 書くまでのハードル高いわライブラリがゴミだわでそのうち消える
Haskell 高等選民様によって細々と使われ続けるが永遠にターンは来ない
Scala ゴミ
Erlang/Elixir ニッチな需要で生き残る

18:デフォルトの名無しさん
17/02/12 02:50:51.11 eJbIlXCt.net
>>11>>12の違いは何なんだろうか…
感覚的な話だけど、会社やチームづくりに例えるなら
>>12は仲良く内製で開発(処理)する感じ
>>11は派遣使ってアウトソーシングしまくる感じがしますねぇ…

19:デフォルトの名無しさん
17/02/12 02:55:00.32 32IkYRZ8.net
そうそうHaskellだった
どう考えてもオブジェクト指向の方が応用範囲が広い
GUIアプリとかHaskellで作れるのか?やるにしても気が遠くなるわ

20:デフォルトの名無しさん
17/02/12 02:57:25.21 32IkYRZ8.net
まーjavaとc++にラムダの存在を教えてくれた事だけは感謝だわ
あれは確かに便利。

21:デフォルトの名無しさん
17/02/12 02:57:51.45 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:デフォルトの名無しさん
17/02/12 03:01:23.24 VGD3y4dr.net
>>19
HaskellからC叩けるから、gtkなりQtなり使えば作るだけなら気は遠くならんぞ?
オブジェクト指向と関数型は問題へのアプローチの仕方が違うだけで「オブジェクト指向の方が応用範囲が広い」はガセだ。
「オブジェクト指向は古い!これからは関数型!」とか言って殴り込んでくるやつが目障りなのは激しく同意するが。

23:デフォルトの名無しさん
17/02/12 03:01:59.08 32IkYRZ8.net
確かにマルチスレッドという問題が普通の現場でも表面化してきたのは頭の痛い問題だが、
それに対する答えが関数型とは全く思えないね。
確かにマルチスレッドの問題単体で見たら関数型の方が優れているかもしれないが、
それだけのためにオブジェクト指向のメリットを全部捨ててるんだもんなぁ。
こりゃ普及せんわと

24:デフォルトの名無しさん
17/02/12 03:18:20.25 VGD3y4dr.net
オブジェクト指向といえばHaskellのLensって今どんな感じなんだろう。

25:デフォルトの名無しさん
17/02/12 03:50:30.23 ashgYgUc.net
>>11
F#もうちょういシンプルに書いてよ
URLリンク(www.rosettacode.org)

26:デフォルトの名無しさん
17/02/12 04:35:42.91 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:デフォルトの名無しさん
17/02/12 04:44:39.39 1dYlSNDw.net
OCaml、F#「!?」

28:デフォルトの名無しさん
17/02/12 04:49:45.47 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:デフォルトの名無しさん
17/02/12 04:57:02.22 eJbIlXCt.net
>>28>>25へを意図してた
F#初めて書いたけど無限にリファクタリングしたくなるな楽しくて

30:デフォルトの名無しさん
17/02/12 05:00:54.45 1dYlSNDw.net
あ、>>27>>22へのレスね。
オブジェクト指向関数型言語なのに普及しやしねぇ。。。

31:デフォルトの名無しさん
17/02/12 09:15:26.58 aVrWxIrs.net
Haskellにはoopの機能が無い?
Smalltalkさんのことバカにしとるんですか?

32:デフォルトの名無しさん
17/02/12 09:47:43.03 1dYlSNDw.net
HaskellにOOPは無いよ。
なぜsmalltalk?

33:デフォルトの名無しさん
17/02/12 10:04:50.15 ekfokMCG.net
OOPとFPを創聖合体させたScalaが最強なんやなって

34:デフォルトの名無しさん
17/02/12 10:11:27.09 FUIQXWCG.net
どんな言語使っても糞なものしか作れんやつはいる。
まずは「プログラミング作法」でも読めと言いたくなる馬鹿が多すぎる。

35:デフォルトの名無しさん
17/02/12 10:15:06.25 pm4QJbUk.net
>>34
タイトル間違えてる時点で同類だろ
せめて読んでから言おうな
ソフトウェア作法とプログラム書法のどっちか知らんが

36:デフォルトの名無しさん
17/02/12 10:18:41.84 pm4QJbUk.net
>>20
そもそもC++erとHaskellerは重複してるだろ
お前も発言からマトモにプログラム組んでるやつとは思えない

37:デフォルトの名無しさん
17/02/12 10:21:55.70 ekfokMCG.net
>>35
どっちンゴ?読んでみたい
けど紙の本しかない遺物やんけ

38:デフォルトの名無しさん
17/02/12 10:26:15.52 pm4QJbUk.net
>>37
すまん俺が間違えてた
さらに同じ著者で別にプログラミング作法と言うのが出ている
自分の方が古い知識で大恥かいてしまった

39:デフォルトの名無しさん
17/02/12 10:28:10.46 pm4QJbUk.net
>>34
謝罪はこっちに言うべきだったな
失礼な物言いで大変申し訳ない

40:デフォルトの名無しさん
17/02/12 10:34:32.79 l4guIXkt.net
爺の頭に浮かぶのは
記述言語にRATFORを採用した方の本

41:デフォルトの名無しさん
17/02/12 11:44:53.86 ekfokMCG.net
初版1980とか2000とか、ワイより年上で草生える
こんな時代から言われてることが、未だ当たり前どころか知られることもなく、
次世代言語が産まれては消え、ジャップランド土人は炎上プロジェクトとデスマ
いったい何なんや?

42:デフォルトの名無しさん
17/02/12 12:14:02.72 D9dWxmTY.net
>>15
次世代言語スレにこの書き込みは面白いな
ここまで見事なブーメランはそうそう見れないぞ

43:デフォルトの名無しさん
17/02/12 13:46:55.00 SEA4QyVV.net
ブーメランで思い出した
GUIとオブジェクト指向は直交する概念だから、GUIと関数型の組み合わせでもOK

44:デフォルトの名無しさん
17/02/12 14:04:50.15 mqpRMrYe.net
Prologはやっぱり凄いな。数値演算がない。lengthが隠してるのか。 >>26

45:デフォルトの名無しさん
17/02/12 14:10:48.77 ekfokMCG.net
>>44
言うほどか?
正直何書いてるのかさっぱりわからんMMMM

46:デフォルトの名無しさん
17/02/12 14:57:40.58 32IkYRZ8.net
>>42
俺のは苦情だよ。どうせQiitaとかでマウンティングしてる奴らが多そうだしなここ

47:デフォルトの名無しさん
17/02/12 15:08:07.55 YSMQxpB5.net
直近の次世代言語はTypeScriptだろうな

48:デフォルトの名無しさん
17/02/12 15:11:57.61 7CrFTlLt.net
>>46
>>14>>19>>23も苦情なの?
わざわざ次世代言語のコミュニティにマウンティングしに来てるようにしか見えないけど

49:デフォルトの名無しさん
17/02/12 15:17:28.61 32IkYRZ8.net
>>48
な、イラつくだろ?
これと同じ事を日常的にやってるのが関数型信者(というよりHaskell信者)。

50:デフォルトの名無しさん
17/02/12 15:23:32.88 ZBx4BhwO.net
負けず嫌いでマウンティングしようと必死なんだけど、
叩くために持ち出した内容すら満足なレベルでなくて、失敗してる感じ。
オブジェクト指向の擁護側からも煙たがれてそうだね。

51:デフォルトの名無しさん
17/02/12 15:41:22.09 ekfokMCG.net
>>49
お薬のお時間ですよ

52:デフォルトの名無しさん
17/02/12 15:44:30.40 hey2nQ+P.net
>>49
俺はどこにもマウンティングしたことないのに今被害受けてるんだけど?
しかもその上さらに「な?イラつくだろ?」って勝ち誇られてるんだけど?
Qiita に出没するとかいうよくわからん関数型信者よりおまえがうざいよ
嫌だ嫌だといってる相手と同じことして恥ずかしくないの?

53:デフォルトの名無しさん
17/02/12 16:16:33.77 0v9V4t1K.net
>>49
お前他板も荒らしてそうだな。

54:デフォルトの名無しさん
17/02/12 16:20:13.28 aRM3PRRH.net
「相手は悪だからこちらの手段は正当である」ってどっかで聞いた理屈だな。
言語パラダイムも大事だが、周辺ツールや標準ライブラリの充実も大事じゃないかね。
そういう意味で「電池付属」を推してる次世代言語ってGoくらいか?

55:デフォルトの名無しさん
17/02/12 16:43:28.53 Lac5VkvP.net
>>44
今日twitterにこのコードの解説が載ってたけど難しいですね。
わざとそうしているんですね。

56:デフォルトの名無しさん
17/02/12 17:04:14.13 FjwSaYM1.net
>>44
Prologのプログラムは読むだけだと、どの言語より易しいっていう
印象ですが、このコードは難しいですね。剰余計算どころか計算が
でてこない。Mが沢山ならんでいるのもわけが分かりません。

57:デフォルトの名無しさん
17/02/12 17:05:37.62 SEA4QyVV.net
競技プログラミングの類は難しい方が楽しい
相手がそういう競技を選んだから試合中はわざとそういうことをするのは正当である

58:55
17/02/12 17:20:26.48 rzlVGyJj.net
>>56
>>22のコードはtwitterでPrologおじさんとして知られている方が
書き込んだのではないかな。今日の午前中に連続して5通くらい、
このコードの解説を書き込まれていました。

59:デフォルトの名無しさん
17/02/12 17:31:14.49 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:デフォルトの名無しさん
17/02/12 18:09:04.18 rzlVGyJj.net
>>59
Clojureのコードの方はメタな表現。Prologの方は非決定性の単純な再帰。
その違いはあるけれど、やっていることは同じのように思います。

61:デフォルトの名無しさん
17/02/12 18:53:57.11 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:デフォルトの名無しさん
17/02/12 18:55:17.88 32IkYRZ8.net
初心者のエンジニアにわざわざHaskellを布教する鬱陶しさ
それで嫌な顔されたら「手続き脳」

63:デフォルトの名無しさん
17/02/12 19:05:04.40 ekfokMCG.net
な、手続き脳だろ?

64:デフォルトの名無しさん
17/02/12 19:06:39.11 ElZAn973.net
手続き脳は悪口じゃなくて自身の経験からですが。。。
私はJavaも触った上でHaskellから得られるものは多いと言ってますが、あなたは?
(C#がメインですが)

65:デフォルトの名無しさん
17/02/12 19:12:03.87 VGD3y4dr.net
>>64
>>20 >>23 って言ってるから何言ったってしゃーないんじゃね?
坊主憎けりゃ袈裟までって奴だと思う。
実際Haskell原理主義者がうざいっていうのは超同意するところではあるんだけど、
本人がその原理主義者と同じ行動してりゃ世話ないわ。

66:26
17/02/12 19:18:08.80 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
17/02/12 19:26:06.73 UIkULlkI.net
それではfizzやbuzzの時はどうなのか。これはMではありませんから、
第二引数と無関係です。それでこのリストからPOPされたものが最後の
引数、すなわち、Xとなります。解です。
Mの場合はカウンターリストLnの長さがlength述語でMとなり、それがXと
なりますから、1,2,4,7,8,11・・などが解として埋まっていくのです。

68:デフォルトの名無しさん
17/02/12 19:37:29.11 32IkYRZ8.net
いやいや初心者でまだ仕事に使う言語覚えるだけで精一杯のやつに
Haskellなんか無理やり押し付けて、
それで拒否られてるのに性懲りもなくまだ布教しようとしてる奴はヤバイでしょ。
マジで宗教じゃん。

69:デフォルトの名無しさん
17/02/12 19:43:22.57 SukjnWiy.net
一番最初に授業でやったのがLispだったけど特に抵抗は無かったなぁ
でも関数型は手続き型に較べて抽象度が高い傾向にあるし頭弱い人には厳しいと思う

70:デフォルトの名無しさん
17/02/12 19:46:25.84 32IkYRZ8.net
まーウザがられるのは承知でやってるからね。
普段Haskell原理主義がやってる事と同じ事を
そのままこのスレでやってみただけだし。

71:デフォルトの名無しさん
17/02/12 19:47:01.73 52ZDIEYO.net
仕事で使う言語とは別に、コードのまとめ方の勉強としてHaskell触らせるのがそんなにおかしいかね?
仕事で使わないものの勉強を押し付けられてたまるかっていうのは分からんでもないが、地力育てるって意味はあるしな。

72:デフォルトの名無しさん
17/02/12 19:49:46.33 32IkYRZ8.net
>>71
自分が新人の頃の事忘れてるんじゃねーの?お前
仕事を覚えなきゃいけない、職場にも馴染まなきゃいけない。
そんな大変な時期に新しくもう一つ言語なんて学ぶ余裕ある訳ないだろ。
押し付けって言うんだよそういうのは。
本人の為に全くなってない。

73:デフォルトの名無しさん
17/02/12 19:51:19.51 ElZAn973.net

教育期間とか無かったですか?
Haskell教えるっと言っても、触り程度で良いですし。
それなら、半日も掛かりませんよ。
それでも十二分に大きなものを得られます。
(教えたいのはHaskellではなく、構造を見抜く力。Haskellはその手段)
次の日からはどうぞ仕事用の言語を覚えて下さい。

74:デフォルトの名無しさん
17/02/12 19:53:17.09 52ZDIEYO.net
>>70
狂人の真似とて大路を走らば、即ち狂人なり。
って言葉知ってる?

75:デフォルトの名無しさん
17/02/12 19:55:10.92 32IkYRZ8.net
>>73
そういうのが有難迷惑って分からないかな?
自分がハマってるからって、仕事と関係ない言語を先輩後輩の力関係使って無理やり触らせるとか迷惑すぎるから。
そんな暇があるなら仕事のことを先に覚えたいに決まってるよね?新人君の気持ちとしては。

76:デフォルトの名無しさん
17/02/12 19:59:58.88 ElZAn973.net
Haskellは手段書いてるやん。
言語覚えるより考え方覚える方が重要なのはプログラマなら分かるよね?
文法覚えたけど入門書以上の事何も書けないって奴を何人も見て来たよ。

77:デフォルトの名無しさん
17/02/12 20:06:49.91 52ZDIEYO.net
>>72
Haskellじゃねーけど新人のころに直属のOJTに
仕事と全く関係無いLinuxの低レベル処理まわりの勉強させられたが
その時には役に立たなくても数年後に効いたのよね。
全然考え方の違う言語さわって見聞広める分にはいいんじゃねえの。
まあ強制する謂れはないかもしれんが。

78:デフォルトの名無しさん
17/02/12 20:08:53.00 32IkYRZ8.net
だったら仕事を通じて必要なことを教えてやればいいだけ
訳の分からない言語の本読ませるより、そっちのほうがよっぽど新人も言う事聞くわ。

79:デフォルトの名無しさん
17/02/12 20:09:42.74 32IkYRZ8.net
>>76へのレスな。

80:デフォルトの名無しさん
17/02/12 20:13:57.00 32IkYRZ8.net
大体自分が新人の頃考えてみろって話だよ。
死ぬほど覚える事一杯あるのに、仕事と関係ない言語の本なんて読んだってアタマに入る訳ないだろうが。
お前らだってHaskellだの勉強始めた時は
ある程度仕事も覚えて余裕ができた頃だろうが。
自分と新人を同じ土俵で考えるなよ。

81:デフォルトの名無しさん
17/02/12 20:23:57.35 VGD3y4dr.net
>>80
院生時代に学会と論文書きで死にそうになりながらHaskell覚えてすまんな

82:デフォルトの名無しさん
17/02/12 20:27:34.22 VGD3y4dr.net
むしろ新人の頃は生まれて一度も使ったことがないC++と関連ライブラリの使い方覚えるのに必死だったな。
別に既存コードで使ってる部分ないのにわざわざテンプレートもやらされてからに。
それでも今役に立ってるからいいが。

83:デフォルトの名無しさん
17/02/12 20:27:37.03 GC8FZ4sL.net
Haskell叩き名目に周囲に憂さ晴らししてるだけだろ
嫌儲に帰れ

84:デフォルトの名無しさん
17/02/12 20:32:01.96 VGD3y4dr.net
いやHaskell原理主義者にヒャッハーされた憂はめっちゃ良くわかるんだよな。
だからこそそいつらと同じ事やって同じところに堕ちてりゃしゃーないわな感が強い。

85:デフォルトの名無しさん
17/02/12 20:33:07.80 zPfOuuFT.net
関数型のおいしい部分は別にHaskellじゃなくても非純粋関数型で学べるし
そういう部分だけ勉強したいって人にはHaskellじゃなくてもっといい選択肢があるんじゃないかな
Haskellだとモナドなんかの初心者には理解しにくい部分がどうしても気になる
今は書籍もサイトも充実してきて、順を追って学べば誰でも既存のモナドを使えるレベルになれるけど
それってこの場合の本来の目的とは違うし
今Haskellやってる人は自分も含めて楽しいからやってるって人がほとんどでしょ

86:デフォルトの名無しさん
17/02/12 20:36:00.02 ol+GRPUy.net
マウンティングの為に悪意で薦めるか、相手のことを思い善意で薦めるか、そこじゃね?

87:デフォルトの名無しさん
17/02/12 20:36:05.84 VGD3y4dr.net
>>85
そういう観点から言うとOCamlかScala辺りが候補か?

88:デフォルトの名無しさん
17/02/12 20:38:14.03 bL+fjtQh.net
>>87
LispかOCamlでしょ
ScalaはJavaやった後でなきゃ勧めちゃ駄目だと思う

89:デフォルトの名無しさん
17/02/12 20:39:59.90 VGD3y4dr.net
Lispか。Scheme辺りなら処理系も手に入りやすいな。

90:デフォルトの名無しさん
17/02/12 20:46:37.83 ol+GRPUy.net
それでSICP読めとかやると今度はLISP叩きが始まるのか。

91:デフォルトの名無しさん
17/02/12 20:47:36.66 ElZAn973.net
>>80
むしろ新人の頃のが暇じゃね?
どんなコード書く(書ける)か分からん新人に、いきなり仕事は振らない。
独習C渡されて、数日はひたすら入門書読んで練習問題解くだけだった。(教育期間)
確かに最初の仕事はCだった。(と言うか、C++でベターC)
だけど、Javaだって当時仕事と関係無いけど自分で覚えた。
VBに至っては一回きりの仕事な上に、教えて貰ってすら無い。
覚えながら書いた。
文法覚えるより、練習問題させたかったんだと思うけどな。
割とすぐにVBだったし。

92:デフォルトの名無しさん
17/02/12 21:02:49.53 b/z7m0Iw.net
LISPは括弧の羅列とか逆ポーランド記法とか、虫酸が走る要素満載だから
OCamlとF#で決まりだな

93:デフォルトの名無しさん
17/02/12 21:26:51.34 Lac5VkvP.net
関数型といっても、テキスト処理なんかには全く無力だから。
これからは前途多難だな。

94:デフォルトの名無しさん
17/02/12 21:32:22.04 D9dWxmTY.net
括弧の羅列で虫酸が走るやつはLispエアプだってはっきりわかんだね
Cの中括弧の羅列のほうがよっぽどウザい

95:デフォルトの名無しさん
17/02/12 21:32:47.33 9Y6cAsF4.net
SICP通ってないのにプログラマ面して次世代かたってんのか
だいたいGoのベースにあるCSPがいつの時代の概念かしってんのかよ
正直次世代の言語は次世代のハードがないかぎり生まれて来ない
現行のアーキテクチャでやりつくせることは概ねどんな言語でもやりつくせる
あとはシンタックスシュガーのこのみでしかねえんだよ

96:デフォルトの名無しさん
17/02/12 21:33:18.96 ashgYgUc.net
ClojureとF#で
JavaScriptで関数型っていうのを詐欺って書いてる人いたけど
実際にWebサイトいじくるコード書きながら部分的だけど関数型の考え方を身に付けることができるから
手続き脳からの脱却する初手としては有効だと思う

97:デフォルトの名無しさん
17/02/12 21:57:05.96 ElZAn973.net
>>93
え、テキスト処理に関数型は向いてると思うが。。。
LLのが手軽ってだけで。
だからこそ堅牢性、並列性とテキスト処理必要なWeb鯖とか向いてるとも思う。

98:デフォルトの名無しさん
17/02/12 21:59:08.12 RJmiTmR1.net
今この時代SICP読むのはもう趣味でしょ
CTMとかなら得るものあるだろうけど

99:デフォルトの名無しさん
17/02/12 23:09:03.26 wxhE3H1K.net
ocaml覚えた動機は、エロゲーからテキストをぶっこ抜くツールを
新作ゲームに対応させるため

100:デフォルトの名無しさん
17/02/13 00:49:48.93 9ylADHSn.net
CTM欲しいけど日本語のはもう絶版なんだろうか
いずれにしてもSiCPの枠組みをでてない次世代ってなんなんだって話

101:デフォルトの名無しさん
17/02/13 01:50:16.82 bklcWYrm.net
>>91
> >>80
> むしろ新人の頃のが暇じゃね?
>
> どんなコード書く(書ける)か分からん新人に、いきなり仕事は振らない。
> 独習C渡されて、数日はひたすら入門書読んで練習問題解くだけだった。(教育期間)
おま、それは典型的な駄目な部署の教育方法じゃねーかw
そりゃ教える側はその方が楽だよ。本渡してわかんないことあったら聞けってのは。
でも、教育する、他人を指導する、という役割においては駄目駄目よ。
もっとちゃんと教えるところは新人で暇になんてならないから。

102:デフォルトの名無しさん
17/02/13 01:52:14.35 bklcWYrm.net
>>92
リスプは逆ポーランド記法じゃない

103:デフォルトの名無しさん
17/02/13 01:57:28.83 3qGYyBZv.net
HP電卓か?RPL : reverse polish lisp

104:デフォルトの名無しさん
17/02/13 04:00:04.87 gZ/8QOyo.net
>>97
本質的? に項変換だからね。関数型は。
論理型は推論と同一性。思想の解明というようなレベルの
知識プログラミングの領域では優劣は明らか。

105:デフォルトの名無しさん
17/02/13 04:24:42.25 rgdFF/HE.net
>>104
ごめん、よく分からない。
具体例を挙げてもらえるとありがたい。

106:デフォルトの名無しさん
17/02/13 05:33:46.88 vGCo2kzU.net
あながちマウンティングしたいだけの奴が多いのは否定できないな

107:デフォルトの名無しさん
17/02/13 05:45:53.47 gZ/8QOyo.net
>>105
思想を解明する知識プログラミングは殆ど手付かずだと思うので、極めて簡単な文例で。
「津軽海峡冬景色」からつぎの一節。論理型だと以下になります。二つのパターンを
見比べ、重ね合わせて理解します。こんな端的な表現が関数型にできるかということです。
私は帰ります --> 私は,帰ります.
私は --> 私,は.
私 --> [私].
は --> [は].
帰ります --> 帰り,ます.
帰り --> [帰り].
ます --> [ます].
文 --> 名詞句,動詞句.
名詞句 --> 名詞,後置詞.
名詞 --> [私].
後置詞 --> [は].
動詞句 --> 動詞,助動詞.
動詞 --> [帰り].
助動詞 --> [ます].

108:デフォルトの名無しさん
17/02/13 06:41:13.16 GOtEVvRl.net
それ、テキスト処理、違う

109:デフォルトの名無しさん
17/02/13 06:51:29.86 dJZmi+77.net
>>101
ああ。
ブラックだったさ。
そんなしっかり教える環境なら、そもそも新人にも教える側にも選択の余地なんぞないだろ。
教え得るノウハウあるんだから。

110:デフォルトの名無しさん
17/02/13 06:57:26.15 dJZmi+77.net
>>104
Prologと比べられればね。
論理の勉強はあんまりしてこなかったから、だいぶ初心者用の入門書しか理解出来なかったな。。。
Haskellは巷で流行ってるのよりは向いてると思う。
K1だかKL1だかって並列論理型言語があるらしいが、研究室専用なのか処理系には出会えてない。
触ってみたかった。

111:デフォルトの名無しさん
17/02/13 07:30:07.81 gZ/8QOyo.net
関数型は冗長な情報をより洗練されたものに書き換えるためのもの。
ところが、19-18世紀の大思想を読み解くというような対象は、
「ここに書かれていることは全て正しい」と仮定して掛かるような対象。
関数型のコンセプトとは全く合わない。論理型はテキストを述語化してから
それ自体は動かさず、補間情報を探すもの。我々が過去の思想を理解しよう
とする時の態度と一致する。

112:デフォルトの名無しさん
17/02/13 07:30:33.52 PoWXNXBh.net
>>110
第5世代アーカイブにPCで動く処理系のソースがあったような

113:デフォルトの名無しさん
17/02/13 07:44:49.04 dJZmi+77.net
第5世代言語なのは知ってたけど、アーカイブなんてあったのね。
ありがとう。

114:デフォルトの名無しさん
17/02/13 07:57:27.96 gZ/8QOyo.net
>>112 >>113
もう10年は前だとおもいますが、Webを整理して解消する際にCDが売り出され
ました。最近、この再版を求める動きがありますが難しいようです。
Ubuntuを含むDebian系Linuxには32ビット時代はKL1のパッケージが載って
いましたが、64ビットになってからはないようです。

115:デフォルトの名無しさん
17/02/13 08:06:53.18 dJZmi+77.net
10年前でも2007年。。。
90年代の遺産だと思っててごめんなさい。
そして、追加情報感謝です。

116:デフォルトの名無しさん
17/02/13 08:50:20.89 fjEEeyAB.net
Σプロジェクトは出来たものが恥ずかしいゴミ過ぎて
この手の資料公開は無かったみたいだね。
URLリンク(ja.m.wikipedia.org)Σプロジェクト

117:デフォルトの名無しさん
17/02/13 08:54:34.63 fjEEeyAB.net
これもオモロイ
シグマはどこへ消えた?
URLリンク(www.yamdas.org)

118:デフォルトの名無しさん
17/02/13 09:42:44.82 mcSza9v8.net
>>114
KL1は上田研究室が最後の砦ですね。
こういう時はInternet Archiveがありがたい。
並行論理プログラミング (KLIC version 3.01)
URLリンク(www.ueda.info.waseda.ac.jp)
けいえるわん
URLリンク(www.ueda.info.waseda.ac.jp)
並列論理型言語処理系 KLIC のページ
URLリンク(web.archive.org)
第五世代コンピュータ プロジェクト アーカイブ
URLリンク(web.archive.org)

119:デフォルトの名無しさん
17/02/13 10:33:26.43 9gMxi0s2.net
>>107
これだけなら演算子作れば関数型でも簡単に出来そうな気が
利点が良くわからない

120:デフォルトの名無しさん
17/02/13 11:00:52.83 gZ/8QOyo.net
>>119
それが論理型との違いでしょう。論理型は上の方の定義を書き終えたら
できたできた。「私は帰ります」からはこれ以上の情報はない。この後で、
「どこに帰るのか」「いま私はどこにいるのか」「私とはどんな私だ」と
いうような情報を引数に付加するかも知れないが、それは後の話です。

121:デフォルトの名無しさん
17/02/13 11:23:25.21 nSPUHPPd.net
>>120
耳に入ってくる言葉の端々を述語として書き並べることが論理プログラミングと
いうことですか?

122:120
17/02/13 12:16:38.41 gZ/8QOyo.net
>>121
基本的にそうだと思っています。構造は述語だけで、後は構造を持たずシンボル
をならべただけのものです。
ただ誤解がないように言うのですが、プログラミングの中心的な課題が思想を
解明することになるのは、それこそ自動車の無人自動運転が当然の時代となる
くらい先だと思います。ですから現時点でこの次世代言語スレで関数型言語が
不適格であるとは全然思っていません。

123:デフォルトの名無しさん
17/02/13 12:20:56.87 l1N3ICNN.net
クラスベースOO=C++もあるけど、もっとわかりやすく便利で理想的なやつ
関数型=Haskell以下同文
論理型=Prolog以下同文

124:デフォルトの名無しさん
17/02/13 13:19:41.96 9gMxi0s2.net
>>122
プログラミングというよりも、論理?の列挙に見えるんですけど
つまりそういう事を言ってるんですか?

125:デフォルトの名無しさん
17/02/13 13:23:43.98 9gMxi0s2.net
論理というか集合の要素?
演算はまた別になってしまうだろうし、よくわからない
こういう記述だけで圏より素朴に演算を定義できるとも思えないし

126:デフォルトの名無しさん
17/02/13 15:24:22.49 l1N3ICNN.net
適当に具体例を列挙してボトムアップする能力も評価されるべき
トップダウンとマウンティングは似ている

127:デフォルトの名無しさん
17/02/13 15:41:49.88 HSaRDCl9.net
オブジェクト指向なんてダッセーよなー、関数型のほうが面白いよなー

128:デフォルトの名無しさん
17/02/13 16:28:13.09 AmcZDedG.net
今までの歴史からして遠からずPythonすら置き換わる汎用言語も出るだろうけどどんなだろうな
まったく違うパラダイムだろうか

129:デフォルトの名無しさん
17/02/13 17:10:45.69 X/RmwKxM.net
関数だけを使う関数型言語っていうのは初めにあって、
次にそれをパワーアップさせてリストだけを使うリスト型言語が出来て
次にそれをパワーアップさせてオブジェクトだけを使うオブジェクト型言語
ができたんだからオブジェクト型が今のところ最先端だな。
次のパラダイムは何か新しい一つの物だけを使った言語だと思うな。

130:デフォルトの名無しさん
17/02/13 18:31:51.83 lgjAPN1q.net
>>129
マルチパラダイム言語ディスってんの?

131:デフォルトの名無しさん
17/02/13 19:18:42.74 HSaRDCl9.net
>>129
某ゲームメーカーの昔のCMネタで書き込んだだけなのに、こうやって釣れるんだよな。
ネットのOOP解説関連のHPも、頭悪い人間や旧世代を見下してるの多いし、
同じことを歴史を繰り返して関数型にやられてるだけじゃん。

132:デフォルトの名無しさん
17/02/13 19:26:15.09 l1N3ICNN.net
関数の中に関数を書くっていう関数型が初めにあったとすると
クラスの中に関数を書くっていうのは別にパワーアップしてない
粉飾パワー系

133:デフォルトの名無しさん
17/02/13 19:27:22.92 MQ2CnNxG.net
因果は巡るのじゃw

134:デフォルトの名無しさん
17/02/13 19:41:12.63 X/RmwKxM.net
>>132
オブジェクト型はオブジェクトの中にオブジェクトを書くんだよ。
メソッドはオブジェクトのインターフェイスでオブジェクトの一部として考えられる
オブジェクトのコアの中にオブジェクトが入って外部から遮断されてる。

135:デフォルトの名無しさん
17/02/13 19:51:42.41 zwnL86Oa.net
OOP言語のJavaで作られたものは数あれど、
関数型言語のHaskellで作られたものって何があるん?

136:デフォルトの名無しさん
17/02/13 20:02:53.28 l1N3ICNN.net
人間が作ったものは人間の手柄
それを巧妙なマウンティングで言語の手柄にされてしまう
更に言語の上にパラダイムが乗っかってパラダイムの手柄になる

137:デフォルトの名無しさん
17/02/13 20:06:34.96 SRrzQdIe.net
129はなんか間違ってるだろ。

138:デフォルトの名無しさん
17/02/13 20:12:19.53 SRrzQdIe.net
関数型とオブジェクト指向は共存できるだろし。
説明はできないが、別次元の概念だとおもうぞ。
進化するとか比較対象になるものではないだろ。
オブジェクト指向をベースにした純粋関数型言語って可能だろ?

139:デフォルトの名無しさん
17/02/13 20:17:27.40 l1N3ICNN.net
オブジェクト指向を入れると型推論のアルゴリズムが複雑
ゆえに現実主義者はダックタイピングでオブジェクト指向するか純粋関数型で型推論する

140:デフォルトの名無しさん
17/02/13 20:23:35.51 SRrzQdIe.net
ぐぐった、抜粋。

関数型言語のウソとホント - Qiita

?「関数型言語もいずれオブジェクト指向などのスタイルを取り入れたマルチパラダイムな言語になる」
関数型言語は関数というたったひとつの武器だけをひたすら研ぎ澄まして問題に立ち向かおうとする言語であり、それ以外の武器はかえって邪魔になります。
OCamlなんかはCamlという言語にオブジェクト指向的な機能を付け加えたObjective Camlが改名されたものだそうですが、OCamlが積極的にオブジェクト指向で設計されているようには見えないです。
Haskellに至ってはオブジェクト指向を取り入れる動きはほとんど皆無ですし、そうする必要がないです。
O'Haskellといってオブジェクト指向の概念を取り入れたHaskellが提案されたこともあったようですが、現在O'Haskellが使われているという話は聞いたことがありません。
最近では関数型以外の言語が関数型のスタイルを取り入れる動きがしばしば見られる一方で、関数型のほうから例えばオブジェクト指向を取り入れる動きはあまり積極的ではないようです。
しかし近年ではやはりScalaがオブジェクト指向と関数型の融合を目指したものとして台等しています。
URLリンク(qiita.com)

141:デフォルトの名無しさん
17/02/13 20:24:33.73 9ZqcI6aJ.net
>>139
純粋関数型にとって型推論とはそんなに重要なものなのですか?

142:デフォルトの名無しさん
17/02/13 20:54:36.75 3XLU4PQN.net
OCamlは型システムが柔軟で強力なら、大抵の場面でOOじゃない方が楽だってことを教えてくれる良い言語
わざわざオブジェクトにするのは、遅延結合が必要な所とヘテロジーニアスなオブジェクトを統一して扱う場合くらい
弊害として、過激なOO不要論者になる可能性がある

143:デフォルトの名無しさん
17/02/13 21:01:24.48 l1N3ICNN.net
>>141
個人的には、重要かどうかではなく本当に実現するのか騙されてるだけなのかを知りたい

144:デフォルトの名無しさん
17/02/13 22:01:47.07 tn7uWAuX.net
当たり前なのかもしれないけど
データと処理が強く結びついてるドメインにおいてはオブジェクト指向の恩恵のほうが大きいんじゃね
グラフィック系のツールで選択してるブラシによっていろんな動作が変わるやつとか
データと処理が一箇所にまとまっててその結びつきが強制されてることにどの程度の価値を見出すか
Strategyパターンみたいなもを例に考えるといい気がする

145:デフォルトの名無しさん
17/02/13 22:17:28.21 JsOR7Nm6.net
実践 Common Lisp とか読んでれば common lisp はだいぶ穏やかな言語だって
思うんだけどね。
あれもマクロマクロうるさい馬鹿のせいで偏見持たれてる気がする。

146:デフォルトの名無しさん
17/02/13 22:21:19.27 ut1LFOtS.net
>>145
わかる
そんなに尖った機能無いよな

147:デフォルトの名無しさん
17/02/13 22:22:45.43 GOtEVvRl.net
>>140
おはスケル
なんJ民かな

148:デフォルトの名無しさん
17/02/13 22:23:57.02 GOtEVvRl.net
Lispはかっこつけすぎ

149:デフォルトの名無しさん
17/02/13 22:56:11.66 HSaRDCl9.net
プログラミングは免許制にすればいいよ、
関数型プログラミングができるかどうかで。
馬鹿プログラマでも扱えるように色々と冗長にする
-> 冗長だから手番が増えてさらにプログラマが必要となる
-> 馬鹿プログラマが補給される
このコンボが決まって悪循環が続いている、と。
別に関数型プログラミングが全能とは思わないが、現時点でのひとつのリトマス試験紙にはなるかと。

150:デフォルトの名無しさん
17/02/13 22:56:44.30 g1s3e9Z7.net
((L)(((i)s)p)))

151:デフォルトの名無しさん
17/02/13 22:58:39.38 g1s3e9Z7.net
>>149
関数型の基礎になる数学知識があるかを問うたほうが良さげ

152:デフォルトの名無しさん
17/02/13 22:59:44.86 ut1LFOtS.net
マクロが自然に馴染む構文というと、結局S式しかないという気はする
IDEでマクロの構文まで面倒見てくれる言語ってなんかある?
あれば使ってみたい

153:デフォルトの名無しさん
17/02/13 23:44:14.31 HSaRDCl9.net
>>151
そうかもね。抽象化の最たるものだね、数学は。
>>152
emacsのLispモードについてんじゃないの?(適当)

154:デフォルトの名無しさん
17/02/13 23:50:25.63 ut1LFOtS.net
>>153
「S式(lisp)ならマクロに対する特別な支援は(殆んど)要らない」ってこと
Juliaでマクロ書いてて思ったのよ、インデント崩れたりとか

155:デフォルトの名無しさん
17/02/13 23:57:47.13 kQGSvZ2q.net
S式は括弧使って構文解析サボってるだけ。
逆ポーランドとかの怠け記法と同類。

156:デフォルトの名無しさん
17/02/13 23:58:31.38 HSaRDCl9.net
>>154
なる。Julia知らんけどemacsなら(ry

157:デフォルトの名無しさん
17/02/13 23:59:24.88 HSaRDCl9.net
>>155
emacsなら(ry

158:デフォルトの名無しさん
17/02/14 00:35:59.85 gfvqdCIF.net
数学知識より国語力高いやつのほうが欲しい

159:デフォルトの名無しさん
17/02/14 00:40:40.70 4G8SInJT.net
数学知識。まずは自分の国語力を見直そうか。

160:デフォルトの名無しさん
17/02/14 00:46:48.47 gfvqdCIF.net
それはごもっともだが>>151の引用だから

161:デフォルトの名無しさん
17/02/14 00:53:58.87 4G8SInJT.net
これは失礼。国語力も大事ですね。

162:デフォルトの名無しさん
17/02/14 02:34:10.88 4XLa6m2a.net
オブジェクト思考はそもそもの設計思想からミスってるというのが持論だけど、割とハードにちかいとこでのでーたのやりとりのラップにつかえんのかなってかんじ

163:デフォルトの名無しさん
17/02/14 07:08:37.44 izwS/hYI.net
LispやってるとなんでCでは中括弧を閉じるとき重ねずに一つ一つ改行していくんだろうと感じる

164:デフォルトの名無しさん
17/02/14 07:54:13.53 deUQRuVA.net
>>163
LISPは行エディタ時代の言語。Cは画面エディタ時代の言語。
カーソルを縦に下ろしていって、ブロックを確認するのに、
改行しておいた方が都合よかったからではないか。

165:デフォルトの名無しさん
17/02/14 08:15:42.74 uoklH2m8.net
実際に書いてみると、以下みたいなタイミングで改行を押すことになると思う
(define (fact n)[改行] (if (<= n 1)[改行]1[改行](* n (fact (sub1 n)))))
そうなると自然に閉括弧の中には改行が入らなくなるんじゃないかな
特にコーディングルールなんかを意識しなくても、閉括弧が密集するはず

166:デフォルトの名無しさん
17/02/14 08:19:39.83 uoklH2m8.net
Juliaってまだ次世代言語という認識も無い感じなのかな、ver1.0出ないし
それとも対象領域が狭いのか

167:デフォルトの名無しさん
17/02/14 08:41:27.92 ptdZF2Do.net
Juliaはすでにダメかと
放置ぎみ
これは言語に特色あるというより、LLVM用のスクリプト言語って位置づけだろ?
JavascriptをベースにしてLLVMを動かしてもいい。

168:122
17/02/14 08:44:44.67 deUQRuVA.net
>>124 >>125
どう答えればよいか考え倦ねていたのですが、
Prologの場合は、基本論理式であることは確かですから、論理かなと
言われればその通りなのでしょう。
>>107の「私は帰ります」から始まるスレッドで言いたかったのは、
受け取った文そのものが、シンボルで即ち述語となるということ。
それが我々が自然言語を扱う時、自然言語に接する時の作法に近い。
そのシンボルはやがて分解されて、詳細な述語が生まれる。そしてまた
それがDCG節で書いた二番目の定義、即ち、句構造への文法的な解析と
ほぼ同型になる。そういう主張です。

169:デフォルトの名無しさん
17/02/14 08:45:48.11 ptdZF2Do.net
開発されてた
GitHub - JuliaLang/julia: The Julia Language: A fresh approach to technical computing.
URLリンク(github.com)

170:デフォルトの名無しさん
17/02/14 09:38:35.37 OAj0rQR0.net
>>168
Prolog、面白そうですね。やってみます。
FPでの自然言語処理だと、全てを読んだ訳ではない上での感想と理解いただきたいですが、
Computational Semantics with Functional Programming
がFPらしい流儀で本格的なことやってるように見えました。
Draft版がpdfで読めます。

171:デフォルトの名無しさん
17/02/14 10:03:37.62 lPJlbUrB.net
Juliaはとりあえず永遠にStableにならなそうなふいんき()をなんとかしてくれ。
同じ事がNimやElmにも言えるが。

172:デフォルトの名無しさん
17/02/14 11:20:46.81 QO8CQqzs.net
俺数学大っ嫌い文系だけどオブジェクト指向言語より関数型言語のが好きなんだが異端なのか?

173:デフォルトの名無しさん
17/02/14 11:33:19.82 ptdZF2Do.net
手続き型は関数型を一般化したようなもので、関数型は手続き型を制限したようなもの。
手続き型ができれば、注意深くやれば関数型はかけるはず。
記法は別にしてほぼ一行でプログラムするようなこと。ハンターハンターでこんなのあるが。

制約と誓約についての詳しい考察 | キルアから見たHUNTER×HUNTER
念能力における概念の一つ。
自らの念能力に対し制約と誓約を課すことによってその威力と精度を著しく向上させることが出来る。
能力者のほとんどは「制約」のほうだけを自らの念能力に取り入れているケースが多く、
純粋に制約と誓約の両方を取り入れている能力者はクラピカくらいだと言える。
クラピカ
中指の鎖に対して「旅団以外には使わない」という制約と「旅団以外に使った場合は命を絶つ」という誓約を立てた。
作中では述べられていないが、恐らく制約のみを課すよりも制約と誓約の両方を課した方が能力がより向上するものと思われる。
URLリンク(kirua-hunterhunter.com)

174:デフォルトの名無しさん
17/02/14 12:28:22.89 PhsD9VtO.net
>>172
洗練ということに価値をみる人だと至極当たり前の方向だと思う。

175:デフォルトの名無しさん
17/02/14 12:33:23.61 OAj0rQR0.net
>>172
物事の抽象化という点では文理関係ないのでは?
受験数学だと抽象的でない暗記的な内容もあるでしょうし。例えば積分公式の暗記とか。
微分と積分が逆だとぼんやり理解するのが大事で、
ばっちり解析解(公式)が出るかはそりゃ出れば嬉しいけど、出ない方が多い。
そういう狭い領域が○×を判定しやすいという理由で試験にでているだけなのに、
それが数学の全てで、そういうテクニカルなことが嫌いだから数学も嫌いと思っている人は多いのではないでしょうか。

176:デフォルトの名無しさん
17/02/14 13:05:57.35 he6YB8dM.net
lim
ver->1.0 JULIA ver

177:デフォルトの名無しさん
17/02/14 15:41:28.41 90/NuRRw.net
Haskellからは関数型言語という制約を課しながら手続き型言語になりたい
という気持ちが伝わってくるからな。
結局、多様なオブジェクツからなる手続き型言語の理想世界を関数という
アトムで表すことが夢の最終目的なんだよな。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch