2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

次世代言語議論スレ[Go Rust Haskell Scala]第3世代 [無断転載禁止]©2ch.net

1 :
2017/03/04(土) 15:25:41.48 ID:X2My6T7M
いざ、語ろうぞ。

スレタイ超過のため、一部省略。
Go, Erlang, Kotlin, etcもウェルカム。

前スレ
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 第二世代 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1486816357/
2 :
2017/03/04(土) 15:26:51.55 ID:X2My6T7M
Let's go to neXt Generation...
3 :
2017/03/04(土) 15:56:40.80 ID:X2My6T7M
# POST NEXT GENERATION LANGUAGES

- Elixir
- Erlang
- Go
- Haskell
- Kotlin
- Rust
- Scala

(sorted in alphabetical order)
4 :
2017/03/04(土) 16:52:26.37 ID:2fztGO7X
あれ〜Swiftは・・・?
5 :
デフォルトの名無しさん
2017/03/04(土) 17:48:13.76 ID:/imazuHh
Clojure��
6 :
2017/03/04(土) 19:21:56.52 ID:S34ljy53
>>1
次の次世代の本命はProlog
それ以外はなくなる
7 :
2017/03/04(土) 21:07:48.36 ID:gyQpa9Hb
>>6
>それ以外はなくなる
知識プログラミングの時代は来るだろうがさすがにこれは言い過ぎ
8 :
デフォルトの名無しさん
2017/03/04(土) 21:13:28.87 ID:wuF6ZyHX
>>1

個人的には、それらと異なるパラダイムのCoqかAgdaをスレタイに入れてほしかったが。
9 :
デフォルトの名無しさん
2017/03/04(土) 21:18:09.53 ID:a1Qd0ocB
Prologのネガキャンお疲れ様です
10 :
2017/03/04(土) 23:17:47.90 ID:N8WZp5To
>>8
AgdaやCoqはプログラム言語としても浮上できそうなのかな
11 :
2017/03/04(土) 23:52:16.78 ID:+9qG5EdN
kotlin はほんとの「java script」 って感じやね。
12 :
2017/03/05(日) 05:17:38.13 ID:rlVSvpqM
>>11
Groovyがそうだったけど
Kotlinは堅めだと思う
13 :
2017/03/05(日) 05:46:42.24 ID:BRHv0ACr
>>7
知識プログラミング
ICOTも後半この言葉を使ったのだが曖昧なんですね
14 :
2017/03/05(日) 09:15:29.11 ID:CRVYE2F+
>>13
Prologって一階の述語論理以上を扱えるの?
自分はProlog触ったこと無いから、CoqやAgdaの方が表現力が上だって勝手に思ってるけど、どうなんだろう。
マウンティングうるさい人がいるので、そうだと思わないで欲しい。素直な疑問。
15 :
2017/03/05(日) 10:57:44.27 ID:BRHv0ACr
>>14 Coqについてはわからないのだが、
Prologは一階の述語論理のサブセットですから、強力なサポートがあるのは
一階の述語論理だということだと思います。
否定の定義は二階の述語論理だと思いますし、
\+(P) :- call(P),!,fail.
\+(P).

'句を評価してその第一引数が整数だったらそれを返す'(_句,_整数) :-
call(_句),
_句 =.. [_,_整数|_],
integer(_整数).

のような記述は可能ですから、扱うことはできます。
16 :
2017/03/05(日) 11:14:46.94 ID:BRHv0ACr
このように引数の句を評価する述語として、callを基礎に
\+ , setof , bagof , findall , forallなどが組込述語として存在しますが、
こんなものです。さらには、
二階述語論理を再帰述語の中で使うと、句の中にある変数が一度、単一化されて
しまうと、受け取った句と次に再帰する時の句が別の意味になってしまう。
変数が束縛されてしまっているから。
この問題を回避するために再帰述語に入った途端にcopy_termをして変数の
ままの構造体を保存しなくてならない。というような、深刻な不都合が存在
します。
17 :
2017/03/05(日) 11:16:31.37 ID:YjhEGGhg
よくわかりません。
18 :
2017/03/05(日) 11:29:01.53 ID:YuVF0M5o
扱いたいものが二階以上でも、各階層が全射と証明できるなら扱えるだろうけど、
扱うべきかどうかはまた別。
19 :
2017/03/05(日) 11:33:33.34 ID:BRHv0ACr
>>17

再帰の中でPをcallする(P,X) :-
・・・
call(P), % ここでPの引数の変数が束縛されてしまうとする
・・・
再帰の中でPをcallする(P,X). % このPは変数が束縛されたPであり最初のPとはちがう
20 :
2017/03/05(日) 11:39:56.31 ID:BRHv0ACr
論理学では大事な課題である高階述語ですが、
実務の中で出てくることは今のところ皆無。
知識プログラミングが高い段階に進んだら、そういう課題も現れるように
なると思いますが。
21 :
2017/03/05(日) 12:09:25.64 ID:rlVSvpqM
>>19
なるほど、Pの評価によって再帰自体も制約されてしまうって事ですね
Prologはここまで考えないといけないのか…
22 :
2017/03/05(日) 12:19:21.43 ID:rlVSvpqM
>>18
なぜ扱うだけで証明が必要なんです?
23 :
2017/03/05(日) 12:42:27.97 ID:YuVF0M5o
>>22
どういう意味だろうか?
soundnessで、decidableであれば良いと言う話かな。
24 :
デフォルトの名無しさん
2017/03/05(日) 12:48:36.53 ID:FZcEb+sx
>>22
それガイジ
25 :
2017/03/05(日) 13:05:36.69 ID:BRHv0ACr
>>21 そうですね。一階の述語論理に強力なサポートと言ったのとは逆に
こういう部分のサポートは全くない訳です。

再帰の中でPをcallする(P,X) :-
copy_term(P,P_2),
・・・
call(P), % ここでPの引数の変数が束縛されてしまうとする
・・・
再帰の中でPをcallする(P_2,X).

% 上のように引数のストリームを断ち切って使います。
26 :
2017/03/05(日) 13:21:16.68 ID:rlVSvpqM
>>23

わからなくて聞いてるのはこっちですよ
扱うだけならいらなくないですか?
なぜ必要があるんです?
27 :
デフォルトの名無しさん
2017/03/05(日) 13:27:47.30 ID:HN9/KcX+
(あかん)
28 :
2017/03/05(日) 13:29:26.27 ID:rlVSvpqM
>>25
なるほど、そう書くと自由なままとして渡せるんですね
Prolog難しいけど面白いですね

これって、述語部だけ取り出して、引数一部だけ束縛、またはフリーにして渡す事ってできますか?
できるなら、再帰でかなり複雑なパターンマッチもできそう
29 :
2017/03/05(日) 13:37:23.93 ID:BRHv0ACr
>>25
先ほどの述語定義で渡されたPですが、これは

P =.. [_述語名,_引数1,_引数_2, ・・・ ,_引数n]

でどれとも部分的に単一化可能です。この組込述語 =.. はLISPから
ヒントを得たちょっとインチキ臭さがありますが、本格的には
functor(P,_述語,_引数の数) と arg(_引数位置,P,_引数の値) の二つを
使って再帰的に部分項を取り出します。
30 :
2017/03/05(日) 13:38:27.72 ID:BRHv0ACr
すみません。>>25ではなく >>28 に対するレスでした
31 :
2017/03/05(日) 14:16:47.04 ID:rlVSvpqM
>>29
なるほど、=..これでマッチングさせれば、
callもapplyなどの一般的な関数適用のようにできるわけですね

引数適用が適宜変更できるなら、Prologの探索と、関係の列挙と、シンプルな再帰的な動作で、かなり面白い挙動をさせることもできそうですね
例えば、何かパズルや網羅的な物の解析など、有機的な処理とかできそう

途中から割り込んでおいてすみませんが、説明ありがとうございました
今まで食わず嫌いしてましたが、ちょっとProlog環境入れてみようと思います
32 :
2017/03/05(日) 14:42:06.46 ID:YjhEGGhg
うん、マジで何言ってるのかさっぱりわからん
これが次世代言語なのか?
33 :
2017/03/05(日) 14:51:12.72 ID:OTWGYsmM
Swiftとか入れない辺り、ただの関数型信者のスレだな。
わざわざ次世代とか入れないで、関数型総合スレにすれば変な奴も湧かないのに。
34 :
2017/03/05(日) 14:53:44.75 ID:YjhEGGhg
>>33
Goは関数型だった説????・

エスウィフタはマックイオス専用なんだろ?
次世代になれんやんけ
35 :
2017/03/05(日) 16:58:39.65 ID:tyZD49qc
関数ポインターが使えればすでに関数型なんですけど。
36 :
デフォルトの名無しさん
2017/03/05(日) 17:07:10.16 ID:HN9/KcX+
アスペの意見
37 :
2017/03/05(日) 19:21:57.46 ID:YuVF0M5o
観てて思ったけど、カマトトそのものと言うか、出来レースとかプロレス見てる気分。

>>33
そーだと思うよ。
プログラミングは関数型プログラミングができるかどうかで免許制にするべきらしいからw
間接参照と、プログラムメモリとデータメモリの壁を取り払ってデータメモリにjmpする事を許すアーキテクチャ、なんてかたちで
40年以上前に既にやってることが、次世代のプログラミングらしい。
ちょっと違うのは40年前の闇魔法使いはちゃんとステップ数ヒープ容量クロック数把握してたって事くらいだよ。
38 :
2017/03/05(日) 20:29:04.88 ID:eFmYAyos
関数型SUGEEEEEしたいだけでしょ
生ぬるく見守ってあげましょう
39 :
2017/03/05(日) 20:43:48.12 ID:iMAERu5Y
コミュニケーションする気がないのに言語オタクとかどうかしてるんじゃないですかね。
40 :
デフォルトの名無しさん
2017/03/05(日) 20:44:50.91 ID:uF+9myNK
Lispは神の言語
41 :
2017/03/05(日) 21:09:51.59 ID:Snq+LO9g
上の方で大事なことを言って、反応待ちでずっと張り付いてたのにスルーされたからだと思われる。
42 :
2017/03/05(日) 21:43:00.59 ID:J/TxCHLc
いまさらだが関数型て、どれが関数型よ?
Haskellはさんざん出てきてるから分かる。
43 :
2017/03/05(日) 22:31:05.03 ID:Kh31TaEW
俺の認識
CommonLisp 関数型ではない
Scheme 関数型とはいい難い
Clojure 関数型
Scala 関数型ではない
ML, F# 関数型
44 :
2017/03/05(日) 22:32:10.15 ID:eU4nuStd
>>42
Rust,Scalaはオブジェクト指向でも問題なく書けるように作ってあるしね
そう考えると関数型オンリーでメジャーなのはHaskellぐらいで
関数型でしか書きたくなくなるのは(ここにはないけど)OCaml,F#?
45 :
2017/03/05(日) 22:44:57.43 ID:iMAERu5Y
関数型といわれるものの特徴

1. ガード節による if の表現
2. 再帰による for の表現
3. 返り値による値の受け渡し(副作用?に関する内容)
4. カリー化(関数の引数の部分適用)
5. クロージャー生成(関数内で関数を構築して返す)
6. 関数合成

こんなとこかね。
46 :
2017/03/05(日) 23:05:17.41 ID:f1XixyjT
1番がよくわからないが
パターンマッチングのことだろうか?
47 :
2017/03/05(日) 23:16:03.21 ID:YjhEGGhg
高階関数があれば関数型やろ
JavaScriptも関数型です
48 :
デフォルトの名無しさん
2017/03/05(日) 23:35:10.14 ID:uF+9myNK
快適性のためにはガードは欲しいな
49 :
2017/03/05(日) 23:58:25.01 ID:DhZRJ8mI
>>45
3は「参照透過性」の方がわかりやすい。
50 :
デフォルトの名無しさん
2017/03/05(日) 23:59:00.45 ID:Fth8SIIt
>>44
scalaは関数型言語とオブジェクト指向言語のハイブリッドだと
言われてる(いた?)けどRustもそんな感じの言語?
状況に応じてどっちもできるみたいな。
51 :
2017/03/06(月) 00:01:30.29 ID:TElIZB3P
関数プログラミングやりやすいのが関数型って認識だわ
従ってscalaは関数型じゃない
52 :
2017/03/06(月) 00:31:18.21 ID:tkAhRfWW
ガードわかったわ
ガード節って言われるとOOで普通に書いてるガード節を思い浮かべる
53 :
2017/03/06(月) 00:58:30.96 ID:CmbzzojE
>>52
ワイにも気付きを授けてクレメンス
54 :
2017/03/06(月) 01:09:26.57 ID:i7/wxVG9
関数型を免許制にしろってレスは確かにイラっとしたけど
まさかこんな基地外が産まれるとは
55 :
2017/03/06(月) 01:23:32.91 ID:tkAhRfWW
ここを読んだ
http://stackoverflow.com/questions/4156727/what-is-the-difference-between-pattern-matching-and-guards
http://learnyouahaskell.com/syntax-in-functions
http://stackoverflow.com/questions/30589187/elixir-pattern-match-or-guard
https://github.com/clojure/core.match/wiki/Overview

ガードはif-elseの糖衣構文的なもの
パターンマッチングはデータを分解して変数に束縛するためのもの
どっちも似たような用途に使えるけどガードは任意の真偽式を扱える分強力
56 :
2017/03/06(月) 03:24:34.42 ID:cEBf17op
関数の停止性の判別を考えると、
パターンマッチングが使えるところは、ガードを使わずにパターンマッチングした方が良い気がする。
引数のデータ構造が左辺から右辺へ消耗されているのと、終わりが決まっているのを見れば機械的に分かるんでないかい?
57 :
2017/03/06(月) 03:34:08.64 ID:cEBf17op
パターンマッチング > ガード > if_then_elseの順で書けるなら書いてくのがいい気がするがどうだろう。
網羅性の判別についてif_then_elseだと分かり難い気がする。
58 :
2017/03/06(月) 04:56:05.24 ID:yHzqr3h1
>>57
> 網羅性の判別についてif_then_elseだと分かり難い気がする。

elseがあれば形式上は必ず網羅してることになるって理解してない?
59 :
2017/03/06(月) 06:47:41.91 ID:ykOEd1Bt
>>58
そういうことじゃないな。
見たこと無いなら一度ガード文をよく見てみ。すぐ気づくから。
60 :
2017/03/06(月) 07:25:56.79 ID:VtmVq+jZ
関数型?ふーん、関数ポインタがあるのにね。
61 :
2017/03/06(月) 07:36:54.23 ID:vYFC3IUg
ガードは関数じゃないしな。
62 :
デフォルトの名無しさん
2017/03/06(月) 10:00:34.77 ID:KF1pGar0
パターンマッチとガードは便利よ
63 :
2017/03/06(月) 14:37:48.67 ID:IelCg/4C
最近出た国産のKuinってどうなん
64 :
2017/03/06(月) 14:38:32.73 ID:NJsYPQA5
>>45
ラムダ計算というようなことは最近は言わないのかな
65 :
2017/03/06(月) 14:48:54.03 ID:yHzqr3h1
>>59
うん?
>>55に挙げられてる4つの文献のguardの解説なら見たよ
その感想は、そこで“guard”と呼ばれてるのは通常のif〜else if〜else if〜elseの書き方を少し変えただけ(つまり、只のお化粧)で
if expressionの各分岐の条件式の位置(インデンテーション)を揃えて見やすくしているだけの代物に過ぎないということだよ

そもそも、そんな見掛けのお化粧だけのものを“guard”などと大袈裟な名前で呼ぶのが根本的に間違っている

私の知る限りでは、“guard”という言葉を使い始めたのはEdsger W. Dijkstraが
命令的プログラムを論理的な導出する考え方の説明のために
専用のミニ言語 ― いわゆる彼のガード付き命令(Guarded Commands) ― を提案する際に
従来の決定性の(つまり多分岐での多数の条件部の成立・不成立の判定が
固定された順番…ソース上での条件部の現れている順番…で行われる)通常のif〜else if〜else if〜else文を批判して
一連の文の並びを実行して良い条件をguardと呼んで、このguardを付加した文(または文の並び)をguarded commandと呼び
場合分け(条件分岐)ではキーワードif/fiの間に、ループの場合にはキーワードdo/odの間に、1個以上のguarded commandを
並記するようにしたのだ

Dijkstraのguarded commandの特徴は、例えば条件分岐の場合、複数のguarded commandsのguard同士には重なりがあっても良く、
重なりがある場合にはソースコード上での出現順序とは無関係にどちらのguardが開く(それが付加している(あるいは一部の日本語訳だと
蓋している)命令文が実行されても良い…即ち非決定性を積極的に許す…ということだ

そして確かに論理に基づくプログラム導出では彼のガード付き命令で持ち込まれた非決定性はとても便利で重要な概念的ツールとして働く

ところが、この関数プログラミングコミュニティが“guard”と呼んでいるのは単なるif式の書き方を少し変えただけの代物に過ぎない
そんなものを“guard”なんて大袈裟な名前で呼ぶのは羊頭狗肉の類だ

(それに比べると、まだパターンマッチングに関しては、局所変数の導入とそれと値との束縛(binding)を自動的に行うという意味で
単純にはifに書き換えできないという点で自明でない工夫や進歩が成されたとポジティブに評価できる)
66 :
2017/03/06(月) 14:53:23.93 ID:yHzqr3h1
>>65の訂正

誤> 私の知る限りでは、“guard”という言葉を使い始めたのはEdsger W. Dijkstraが
正> 私の知る限りでは、プログラミング言語論の分野で“guard”という言葉を使い始めたのはEdsger W. Dijkstraで
67 :
2017/03/06(月) 15:01:50.48 ID:tkAhRfWW
>>65
>見やすくしているだけの代物に過ぎない

>>57の言ってるのはその見やすさの話だよ
ダイクストラより読解力
68 :
デフォルトの名無しさん
2017/03/06(月) 15:12:02.80 ID:OUYDva0V
見やすさは大事よ
コード書いてない奴にはわからんかもしれないけど
69 :
2017/03/06(月) 15:23:37.65 ID:vYFC3IUg
haskellは見やすさ重視しすぎて手続き型言語になっちゃってるしな。
70 :
2017/03/06(月) 15:39:34.99 ID:WFOJxtdk
>>65
>>66
長々言ってる割に、誰が言っただのと、ガイジと大して変わらんね
重要な点は非決定性、半順序性だけ

ガードは条件に漏れは許されない
リスト内包表記にも使える
馬鹿にしてるインデント云々という点も一般に文であるIfとは違う

こういう他言語を貶めるために、構文糖でしかない、という奴はよくいるが
まさにその形式言語の話題だぞ?

難癖と気づかずに、専門家かのように振る舞うから質が悪い
それなら一生に一つの言語だけ使ってればいいと思うが、なぜこういうスレに出張って来るのか
71 :
2017/03/06(月) 15:43:46.77 ID:vYFC3IUg
要するにガードと同じ機能のガードいう名前の関数を作れば同じことだよね。
72 :
2017/03/06(月) 15:44:37.53 ID:WFOJxtdk
書いてる間にすでに突っ込まれてたっていう
恥ずかしい…
73 :
2017/03/06(月) 16:36:57.18 ID:OYPA5xsG
if-then-elseよりもガードのほうがいいとか、
let-inよりもwhere句のほうがいいとか、
おまえらどれだけMLディスれば気がすむんだよw

おまえらが喜んで崇拝しているのは関数プログラミングじゃなくて
単なるハスケルの構文糖衣だw
74 :
デフォルトの名無しさん
2017/03/06(月) 17:02:04.05 ID:OUYDva0V
Haskell の糖衣構文ホント好き
75 :
2017/03/06(月) 17:28:02.69 ID:NJsYPQA5
>>65
>そんなものを“guard”なんて大袈裟な名前で呼ぶのは羊頭狗肉の類だ
少なくとも、Guard部を頭に持った句が並行計算される可能性を「見て」
ガードなんて、呼んでいるのではないのかな
そうだとすると、糖衣構文というのは外れている部分もあると思うが
76 :
2017/03/06(月) 17:45:46.45 ID:g8E8d1VF
モジュールの定義も型クラスの定義もwhereだろ
それに比べてletは変数を重視しすぎてスクリプト言語みたいになってるな
77 :
2017/03/06(月) 17:49:31.36 ID:OYPA5xsG
意味論では非決定的と定義されているが実際の処理系では上から順に評価される、ならまだしも、
Haskellでは意味論で上から順に評価されると定義されているんだから構文糖衣そのものだろ。
78 :
デフォルトの名無しさん
2017/03/06(月) 17:58:04.73 ID:OUYDva0V
何で糖衣構文じゃいけないのかわからん
79 :
2017/03/06(月) 17:59:35.20 ID:WFOJxtdk
>>77
あらゆる機能はアセンブリの構文糖です
80 :
2017/03/06(月) 18:08:08.68 ID:WFOJxtdk
Haskellでもwhereよりletのが良いぞ
Monadだと必須だ
後ろのin嫌いだからML系はF#しか受け付けないけど
81 :
2017/03/06(月) 18:14:31.69 ID:NJsYPQA5
>>77
そういうものなのですか
私は将来、この部分を実際にガードとして並行計算さらには並列計算される
であろうから、ガードと名付けられているのかと思っていました
勘違いなら、>>75は撤回ですね
82 :
2017/03/07(火) 02:17:32.06 ID:bsRgFXRJ
結局、ガードって
if (arg == null) {
thrown new IllegalArgumentException();
}
のことなん?
83 :
デフォルトの名無しさん
2017/03/07(火) 07:35:02.01 ID:cugNxFV2
うだうだいってないで実機で書いてみろよすぐ分かるから
84 :
2017/03/07(火) 08:03:05.67 ID:s1edUXSN
Haskellのガードって関数の先頭にしか書いたことないのだが
それ以外の部分で書く記法があるの?
85 :
2017/03/07(火) 08:15:24.99 ID:1C2Ly4AW
リスト内包式とかcase式とか
86 :
2017/03/07(火) 12:58:56.72 ID:s1edUXSN
あれもガードというのですか
ありがとうございます
87 :
2017/03/07(火) 13:48:16.69 ID:1C2Ly4AW
>>70
Haskellのガードの議論をしているのに、「一般に文であるif」とか言われてもねえ。
88 :
2017/03/07(火) 14:51:57.97 ID:d/UktTsb
>>70
> 長々言ってる割に、誰が言っただのと、ガイジと大して変わらんね
> 重要な点は非決定性、半順序性だけ

半順序じゃない全順序だ (if〜then〜else if〜then〜・・・〜else if〜then〜else〜の条件判定の順番は半順序じゃなく全順序だ)
この程度の用語すら正しく理解して使えないのか? もしそうならば、君自身が正に君の言うところの障害児だ

そして条件判定での非決定性こそが本質的だ
何故なら、言語とそのプログラムの意味・正しさ(即ち、意味論)を考える上で分岐判定が前から後ろへの全順序(決定性)か全く規定されていない(非決定性)かで大きく異なるからだ
他方、従来のif式と君らの言う見掛けだけのガードとでは意味論は何も違わない
だがDijkstraの本物のguardだと意味論が違ってくるし、命令的言語でのif文とDijkstraの(guarded )ifとでは検証条件が違う(後者が単純明快になる)

> ガードは条件に漏れは許されない

ifでelseを抜かせないように制限してしまえば漏れは自動的になくなるのだよ、それが理解できないか?
君が上で述べた利点は、ifをelse部がないif〜then〜を禁止し、if〜then〜else if〜then〜・・・〜else if〜then〜else〜だけに制限すべきだという主張と同等に過ぎない
それは私が既に>>58で「elseがあれば形式上は必ず網羅してることになる」と指摘したが、君は私の指摘を理解できる知力に不足していたということだ


> 馬鹿にしてるインデント云々という点も一般に文であるIfとは違う

インデンテーションなどそれこそプログラムを入力するエディタのモードでどうとでも対処できる問題でモードなど好きに作るか誰かが作ったモードを使えば良い

> こういう他言語を貶めるために、構文糖でしかない、という奴はよくいるが
> まさにその形式言語の話題だぞ?

そんな見掛け上の違いが形式言語の重大な課題だと思ってるならプログラミング言語の理論(特に意味論だが構文論も)を少しは勉強しろ

> 難癖と気づかずに、専門家かのように振る舞うから質が悪い

意味論の重要さも理解できず小学生レベルの知識で「形式言語」などとのたまうのは10年早い
「形式言語」などと知ったぶった言葉遣いをする前に、少しは理論を勉強したまえ、理論をね、障害児君
89 :
2017/03/07(火) 15:16:58.62 ID:d/UktTsb
>>79
> あらゆる機能はアセンブリの構文糖です

それは間違い
アセンブリ言語の意味論を展開しようとすれば、その意味領域(プログラムの意味を捉えるための集合)は
有限ビット列の集合(やその上の写像の集合)とならざるを得ず、整数などは現れない

「固定小数点演算があるではないか」という反論が出るかも知れないが、そういう演算で処理した(その時点では固定小数点数と看做した)
メモリ領域にあるビット列はその後で単なるビット操作(特定ビットの反転など)の対象となり固定小数点数として扱われない可能性が常にあるから
即ち、アセンブリ言語における「固定小数点演算命令」は固定小数点の集合からそれへの写像でなく、あくまでもビット列の集合からビット列の集合への写像であり、
そのビット列を特定のフォーマットの固定小数点数と看做すと加減乗除算や符号反転などと理解できるような写像となっているというだけだ

つまりアセンブリ言語(とその意味領域としての全ての有限ビット列たちの集合やその上の写像たちの集合)は、様々なプログラミング言語とその意味論を
展開するための意味領域を、★埋め込む★ための埋め込み先として使えるのだよ

つまり、計算可能な対象ならばどんな高度な論理的な構造を持っていたとしても、しょせんはビット列での表現に帰着しようと思えばできるということであって、
アセンブリ言語の世界に高度な論理的構造そのものが存在している訳では★ない★のだ

それは12の音それ自体の組み合わせであらゆる名曲が表現できようと、12の音そのものが既にして名曲ではないようにね
(あるいは絵具で名画を描けるからと言って、絵具が既にして名画でもなければ、絵具メーカーが名画を描いたのでないように)

高水準プログラミング言語やその言語機能は、その意味を捉えるための意味領域がビット列の集合でなく整数の集合や文字の集合やその直積といった
様々な構造(それは言語が持つ論理的な内容の投影された姿)を持つ形で構成できるからこそ、「高水準」なんだよ
単にそれらの構造を幾らでも埋め込めるよりフラットなアセンブリの世界は逆に言えば論理を反映した構造が欠落しているという意味で「低水準」なのだ
90 :
2017/03/07(火) 15:26:29.93 ID:d/UktTsb
>>89に大事な結論を書き忘れていたので補足

「構文糖衣(syntax/syntactic sugar)」と呼ぶのが適切な範囲は、意味領域や検証条件など意味の世界に影響せず
文字通り、構文=字面だけの操作で片付けられるもの
つまりparser/unparserだけ作ればsugarを除いた基本形だけからなるプログラムコードに帰着できるようなもの

高水準言語のコードをアセンブリ言語のコードの世界へ埋め込むためのプログラム、つまり高水準言語のcompilerは
型の定義や変数宣言と変数の型などの宣言情報を記録・チェックしてその型に応じた様々な処理が必要になる等、
parserの構文チェックだけでは済まない、つまり、それは高水準言語はアセンブリ言語の構文糖衣ではないということを表している
91 :
2017/03/07(火) 15:36:20.49 ID:onovVgfa
短くまとめられない病
すげえ汚いコード書いてそう
92 :
2017/03/07(火) 15:41:53.46 ID:d/UktTsb
>>91
70のように無知な人間相手に説明するには長くならざるを得ない、また君みたいに理解力・思考力が不足している人間相手の場合もね
彼や君みたいな不勉強な人間の学習不足とそれによる知識不足(それに論理的な思考力の不足も)を補って説明してやる必要があるからね
上の2行の内容を推理できず、なぜ長くなっているかが理解できない反応を君がしていのは、君自身が思考力(推理力)・理解力が不足している何よりの証拠だ
93 :
2017/03/07(火) 16:04:00.90 ID:OR7b+iU3
そんなことよりなんでそんなに必死なのか知りたい
94 :
2017/03/07(火) 16:21:51.51 ID:1C2Ly4AW
きっちりした説明をした人に「必死」という言葉を使う人って本当に愚かだよね。
95 :
2017/03/07(火) 16:25:00.05 ID:OR7b+iU3
説明というかポエムな
96 :
2017/03/07(火) 16:34:05.43 ID:d/UktTsb
>>93
構文糖衣に関して間違った理解を読むのは不快なんだよ
構文糖衣それ自体は悪くはない(ないよりもあった方が良い)というのは同意するが
>>70に見られるようにそれが本質的に重要だという勘違いや、>>79に見られるように意味を変えるのも構文糖衣と呼ぶ間違いとかはね

構文糖衣なんて見せ掛けだけの代物は、このスレの主題である次世代言語がどうあるべきかという問題の議論では何ら重要でないということだよ
その程度の言語の構文の見掛けの改良でプログラムの信頼性(バグの発生率)を1%でも改善できるならばとっくに殆どのバグが無くなっている
ところが現実にはバグ発生率はむしろ増えている
それはプログラミングの大衆化と共に不勉強なプログラマが多くなったからだ

次世代言語はバグを減らしプログラムの信頼性を回復する目的で言語設計されるべきだと個人的には思っている
そしてバグを減らすにはその言語とそれで書かれるプログラムを支配している論理や意味をより良いものへと改良する必要がある

またコードが短ければ良いという今の風潮も信頼性の観点からは間違いだから個人的に嫌い
短いコードはしばしばトリッキーでバグの潜在的な巣になりやすい
(書かれた時点では正しくとも後の機能追加とかでバグが入り込む原因になりやすい)
長くても論理的に筋が追いやすいコードが後のメンテナンスでトラブルを起こしにくくプロの書くコードとしては正しいというのが私の考え

趣味のプログラミングと人々に使ってもらえる(その対価として報酬をもらえる)プロのプログラミングとは別ということだ
趣味を仕事にする、仕事を趣味にする、という考え方には反対、なぜならばプロとして甘えが入り込む隙が生ずるから
97 :
2017/03/07(火) 16:38:17.94 ID:OR7b+iU3
学校で嫌な事でもあったのか?
98 :
2017/03/07(火) 16:46:07.18 ID:buHXdcTx
>>96
>長くても論理的に筋が追いやすいコード

わかりやすい構造があればね
君の文章にそれはないよ
99 :
2017/03/07(火) 17:03:21.49 ID:1C2Ly4AW
>>97
君って本当に馬鹿だね。
100 :
2017/03/07(火) 17:08:41.42 ID:1C2Ly4AW
>>96
> ところが現実にはバグ発生率はむしろ増えている
> それはプログラミングの大衆化と共に不勉強なプログラマが多くなったからだ

おそらくそれが次世代言語の鍵だ。
不勉強なプログラマを相手にしたら、意味論だけではバグを抑えられない。
構文にいともたやすく左右されるプログラマが作るバグを減らすには、
構文による対処も重要だ。
101 :
2017/03/07(火) 17:13:04.28 ID:Ac9fXCP4
>>88
>誰が言っただのと、ガイジと大して変わらんね
これは「誰かの言葉を引用するなんて障害児みたいだ」ではなく
「誰かの言葉を引用する所がエンジニアガイジみたいだ」だろう。
本人が「あ」と名乗ったのにガイジと呼び続ける>>70もどうかとは思う。
102 :
デフォルトの名無しさん
2017/03/07(火) 17:38:29.56 ID:cugNxFV2
>>101
文章にナチュラルに「あ」を入れても分からなくね?
分かりにくい名前は定着しないってはっきりわかんだね
103 :
デフォルトの名無しさん
2017/03/07(火) 17:39:30.03 ID:cugNxFV2
つーかまーた目が滑る長文カス沸いてるのな
これもう荒らしだろ
104 :
デフォルトの名無しさん
2017/03/07(火) 17:58:14.78 ID:04iMZGzn
>>100
上の長文の人はともかく、たかだか数行でも長い長い
言う輩が最近多いからなぁ・・・
そんな奴らがまともに仕様を読み取れるとは思えないし
プログラミング言語以前な話な気はする
105 :
2017/03/07(火) 18:01:47.91 ID:sN5zB8qN
仕様が無駄に長大な言語ってなんですか?
106 :
2017/03/07(火) 18:03:43.65 ID:Ac9fXCP4
>>100
分かりやすい構文は人間が読みやすいという点で重要だけど、
コーディングで作ったバグはコンパイルとテストで検出できるはずだ。
不勉強なプログラマでもテスト結果がおかしければ気がつく。

バグが増えたのはソフトウェアが複雑になってテスト漏れが増えたからだろう。
だからテスト漏れしにくいプログラミング言語が根本的な解決策だと思う。
たとえば強い型があり参照透過なプログラミング言語ならバグは減る。
107 :
2017/03/07(火) 18:07:19.53 ID:sN5zB8qN
めんどくさいから、C/C++ を強い型付けにすればよい、暗黙の型変換をいっさいなくせばいい、のかな?
108 :
2017/03/07(火) 18:08:34.57 ID:WHQdRSrt
>間違った理解を読むのは不快なんだよ

自分が間違えたら不快だが他人が間違えるのは自由だよ
本当の問題は、間違いが多いというより自由が足りないことじゃないかね
109 :
デフォルトの名無しさん
2017/03/07(火) 18:53:25.60 ID:TjKLocSV
驚くほど目が滑る
110 :
2017/03/07(火) 19:02:53.48 ID:OR7b+iU3
そもそもテキスト入力が間違いを生むと思うな、10個の位の選択肢の中から
選択してプログラムを作る方式のプログラム言語出来ないかな。
111 :
2017/03/07(火) 19:03:23.95 ID:YuKXNQNE
適切な粒度で関数切り出しすればどんな言語でもそれなりのコードにはなるんだが。。
そんな当たり前のこともできないやつに限って、くだらん言語機能に凝りだす。
112 :
デフォルトの名無しさん
2017/03/07(火) 19:08:42.86 ID:TjKLocSV
言語機能は矯正ギプスであり、作者のプログラム哲学が感じられる本でもあるからな
113 :
2017/03/07(火) 19:22:27.71 ID:Skok7ILu
pythonみたいな言語はgoogleが一杯ライブラリ作ってくれてマジうらやましい、マジ次世代
114 :
デフォルトの名無しさん
2017/03/07(火) 19:27:24.56 ID:TjKLocSV
まあPythonは今一番熱い言語と言ってしまっていいよね
115 :
2017/03/07(火) 19:28:14.33 ID:OR7b+iU3
そのうち簡単な小さい関数ならコンピューターが自動でつくってるくれるようになるからな。
これから人が人であるためには巨大で複雑で参照透過性のないプログラムを書くしかないな。
116 :
2017/03/07(火) 19:31:50.92 ID:s1edUXSN
>>113
次世代言語ということになると、日本語プログラミング言語も候補に
あげるべきだと思う。
117 :
2017/03/07(火) 19:32:44.28 ID:7e8mS6v1
>>96
一言だけ
糖衣構文は見せかけではなく、バグの余地を減らすものの一つだよ
キミらすぐにプロを名乗るけど、本当にプロなのか?
118 :
2017/03/07(火) 19:38:24.79 ID:OR7b+iU3
>>116
日本語のソースコードをを英語のソースコードにコンパイルするソフトがあればいいだろ。
119 :
2017/03/07(火) 19:45:15.79 ID:9QvrX/Qz
俺が野次るのもあれだが、ヒステリーみたいな文章だな。
言葉が足りないと責められるのから徹底的に逃げた感じ。
「過ぎたるは猶及ばざるが如し」そのもの。過猶不及と書くのが俺なら対極。

意味論で言うと、写像ではないの?全射であり単射で無いだけの。
整数なんて捉えるから変な話になっていくのであって、そりゃオペコード次第じゃん。

>>102
何でもいいから名乗れといった割に贅沢な話だ。
120 :
2017/03/07(火) 19:50:48.65 ID:OR7b+iU3
俺の考えたユニットテスト言語なら絶対バグは起きないな。
ユニットテスト言語はユニットテストのテストだけを
使ってプログラムを作るから、テストされてない部分は一つも無い
間違いのないプログラムが作れる。
121 :
2017/03/07(火) 19:51:53.37 ID:9QvrX/Qz
まあ、肯定されたくて仕方ないんだと思うよ、ガイジ連呼は。
ガイジと言っておけば大体の事を大半の人間にとって戯言として処理させられるんだから。
大半の人間には自分も含まれるけど。
類するジャンルとして天才とか、あの人は別だからってのもある。

σを絞る事で、自分を平均より少し上に持っていくよくあるやつ。

ちょいちょい居るから別に違和感も無かった。
122 :
2017/03/07(火) 19:55:21.48 ID:74O8Sr0D
調べたがガイジってそういう意味だったのか。
そういう読み方の人もいるからいい迷惑だな。音の響きだけだとかっこいいから普通に付けそうだし。
123 :
2017/03/07(火) 19:57:52.84 ID:9QvrX/Qz
>>122
おおよそ20年くらい前には既に近畿一円には広がってたぞ。
124 :
2017/03/07(火) 19:59:50.64 ID:OR7b+iU3
ガイジと言われて悪口だと思うのは障害児を差別してるからだよな。
ガイジが差別主義者としってむしろがっかりした。
ガイジと言われることに誇りを持てる差別のない世の中にしていかないと駄目だね。
125 :
2017/03/07(火) 20:00:59.93 ID:74O8Sr0D
>>123
近畿か。愛知では聞かなかったな。
そして、書いてから気づいたが上の発言は適切でないので、撤回する。不用意だった、
126 :
2017/03/07(火) 20:02:32.36 ID:7e8mS6v1
>>96
すまないがもうちょい突っ込んどく
まず長文についてはもう流石に自覚してるよな?

記号の羅列を想像しているか知らないが、短いければトリッキーになると言うレッテルは、プログラミングを完全に履き違えてるな
コードは適切に抽象化し、 短く読みやすい方が良い
そんなものは経験者のがわかってる事だろうに

それと強弁しようが高水準言語だろうと、意味論も結局実装に書き下されてるだけの存在で
所詮は抽象で改善してるに過ぎないし、レイヤーが異なるだけで構文糖と同じもの
不勉強と言うのは勝手だが、そりゃただ話をずらして目を背けてるだけだ

それとバグが増えていると言うが、一体どういう基準のどこのデータの話だ?
127 :
2017/03/07(火) 20:04:07.53 ID:bsRgFXRJ
よかった
ワイがバカだから読む気にならないんじゃなくて
読む気になれない文だからワイが読む気にならないんだね
128 :
2017/03/07(火) 20:05:34.14 ID:OR7b+iU3
こういう文の中に秘密のパスワードとか隠しておけば絶対見つからないな。
129 :
2017/03/07(火) 20:08:24.06 ID:Ac9fXCP4
>>113-114
https://www.indeed.com/jobtrends/Python,Ruby,Perl,Scala.html
Pythonはデータサイエンスの標準言語になって求人が急増中だね。
だけどScalaも今の求人増加率が続けば3年以内にPerlとRubyを追い抜く。
大規模ソフトウェアのための次世代言語の本命はScalaだろう。
130 :
デフォルトの名無しさん
2017/03/07(火) 20:11:03.55 ID:cugNxFV2
ここの自称プロ連中って何故か平然と昼間から2chしてるよな
131 :
2017/03/07(火) 20:14:39.12 ID:YuKXNQNE
プロつってもそんなもんよ。
社会に出ればピンキリだってことがよくわかる。
132 :
2017/03/07(火) 20:16:15.01 ID:9QvrX/Qz
>>125
多分なんJみたいな感じで関西弁っぽい感じの言葉が流行ったタイミングで全国区な言葉になったのでは?芸人もテレビでは言わないし。
不適切でもないんじゃないの?そういう姿とそういう言葉があって、傷ついたり、傷つけているかもしれないと思うからガイジと言う言葉がヤジとして成立するんだから。
要は、ヤジとして成立させるために引っ込める必要も無い。

言う奴も、要は言われて傷ついた奴に過ぎんよ。
ただ言う奴はそういうつもりで言っている、という認識があるだけで、そうなりたくはないという認識を自分がそうではないという意思表明にせんでも良いと思う。
133 :
2017/03/07(火) 20:18:19.05 ID:Ac9fXCP4
>>130
客先常駐だと無理だけど、持ち帰り案件なら自由にネットを使えるよ。
134 :
2017/03/07(火) 20:18:47.41 ID:9QvrX/Qz
>>130
年度末だからな。
今動いてるのは予算消化が中途半端な所か、法改正対応か、計画の無い仕事を取らないといけない会社くらいじゃないの?
135 :
2017/03/07(火) 20:32:50.23 ID:1C2Ly4AW
>>106
バグがどこかにあることがわかったとしても、
具体的にどこがバグなのか、どうして誤った動作をするのか、
それが理解できないのが、次世代言語が相手にしなきゃならないプログラマだ。
このスレにも沢山いる、意味論なんて全く理解していない奴に、
意味論に基いたエラーメッセージからバグを特定できるか?
誤魔化しでもなんでもいい。構文による負荷軽減は必要だよ。
136 :
2017/03/07(火) 20:33:13.39 ID:WHQdRSrt
昼間から手動で集めた知識を手動で入力すると、コンピュータが自動で実行してくれる
137 :
2017/03/07(火) 20:34:49.92 ID:1C2Ly4AW
>>126
じゃあお前はWhitespace系の言語でOSでも書いてろ。
138 :
デフォルトの名無しさん
2017/03/07(火) 20:37:49.91 ID:cugNxFV2
はえー。春に湧くのは学生だけじゃないんだなあ
>>137
安価する相手間違ってなーい?
139 :
2017/03/07(火) 20:38:40.11 ID:7e8mS6v1
>>134
むしろ今普通に忙しいぞ
Webも新規案件多いし
140 :
2017/03/07(火) 20:39:40.75 ID:7e8mS6v1
>>137
どういう意味だ?
141 :
デフォルトの名無しさん
2017/03/07(火) 20:40:22.31 ID:cugNxFV2
>>139
そいつ組み込みらしいで
142 :
デフォルトの名無しさん
2017/03/07(火) 21:07:30.18 ID:HLoo0rfy
>>90
勉強になる。こういう話も楽しいな。
143 :
デフォルトの名無しさん
2017/03/07(火) 23:10:29.98 ID:5c7MTUF9
>>129
トレンディーでナウいヤングメンは Python に夢中ってことですね
とてもわかりやすいです
144 :
2017/03/07(火) 23:25:14.34 ID:d/UktTsb
>>117
> >>96
> 一言だけ
> 糖衣構文は見せかけではなく、バグの余地を減らすものの一つだよ

そんなことでバグが減るならば良いエディタを使うんだね
プログラミング言語に専用のモードやチェック機能を作り込めるような
構文糖衣でやれることはその程度のことだ
良いエディタは重要だがバグのほとんどはそれでは救えない範囲に住んでいるんだよ

> キミらすぐにプロを名乗るけど、本当にプロなのか?

構文糖衣でバグがsignificantlyに減らせると思ってるプロのソフトウェア技術者がいるとは信じられないね
自称プロならばいくらでもいるだろうが
145 :
2017/03/07(火) 23:30:34.14 ID:TRrf8/Mo
pythonistaがpythonの仕事を増やそうと躍起になっているがそんなに増えないんだよなあ

君がpythonでできることは僕もpythonでできるからね
146 :
2017/03/08(水) 00:04:55.28 ID:dAIzB0VC
>>126
> 記号の羅列を想像しているか知らないが、短いければトリッキーになると言うレッテルは、プログラミングを完全に履き違えてるな
> コードは適切に抽象化し、 短く読みやすい方が良い

抽象化とコードの長さとは論理的に別だ
ついでに言えば関数プログラミングで共通構造をどんどん高階関数として切り出し抽象化するとコードは極めて短くなり得る
しかしそういう手段で出来上がるプログラムは当人を除いてほとんどの人間には読み難く、後で機能追加などのために
元のコードにも変更を加えねばなくなると大変いじり難い代物となる

> そんなものは経験者のがわかってる事だろうに

その言葉は君に返しておこう

> それと強弁しようが高水準言語だろうと、意味論も結局実装に書き下されてるだけの存在で
> 所詮は抽象で改善してるに過ぎないし、レイヤーが異なるだけで構文糖と同じもの
> 不勉強と言うのは勝手だが、そりゃただ話をずらして目を背けてるだけだ

「意味論も実装に書き下されてるだけの存在」と思ってるのなら単に意味論について不勉強だと言ってるだけだね
「所詮は抽象化で改善している」とは何を改善してるのかな?
プログラミング言語について意味をどう選ぶかこそがその言語が提供する抽象化のレベルの限界を規定していると理解できないか?
つまり、ビット列の集まりという構造のない抽象性ゼロとも言える泥沼のような世界に対してどこまで抽象的な値(数とか直積とかね)を
抽象的な形のまま(実装を考えずに)扱えるようにできるのか、ということの限界をだ

本来、プログラミング言語の実装をその言語を使っているプログラマが意識せねばならないとしたら次のどれかであって、B以外は誰かが間違っている
@ その言語の言語設計が間違っているか、または
A その言語の使い方が間違っているか、または
B ハードウェアの限界まで使うプログラムを書こうとしている (そんなのはスパコンか組み込み系でも最小メモリのかをやってる人間以外は極めて稀)
   (オブジェクト指向でメモリを湯水のように使いながら「俺はメモリの限界ギリギリのプログラムを書いてるんだぞ」なんて自慢しないでくれよ、頼むから)
147 :
2017/03/08(水) 00:14:34.83 ID:F8XXETq2
>>139
そうなんだ。世間は年度とかに縛られてないもんなんだな。

>>141
俺は組み込みじゃないよ。
工業は工業だけど。

>>144
スルー決め込んでるけど、バグの起こりにくい無い専用の良いエディタの極論は統計ならSPSS、計測器ならLabVIEW、シーケンス制御なら各社のPLCのラダーエディタみたいなもので、
実際には糖衣文と糖衣図と言うか、コードを記号まで落とし込んじゃった物だよ。
その程度の事、ではないよな。
どれも使った事無いならわかんないかもしれないけど。

殆どのバグは、それに向いてない言語で無理に書く所が発端。
良いエディタと正しい鎖はバグを産みづらいよ。
148 :
2017/03/08(水) 00:16:55.57 ID:F8XXETq2
>>146
丸囲みは使うなよ。
「(3)以外は誰かが間違ってる」って、なんで列挙してるものに「間違ってる」って書いてるのに対してわざわざ話すの?
蛇足の極みかww
149 :
2017/03/08(水) 00:17:44.10 ID:F8XXETq2
>>147
バグの起こりにくい無い→バグの起こりにくい、だな。
誤記ごめん。
150 :
デフォルトの名無しさん
2017/03/08(水) 01:13:41.47 ID:sPopLWFS
メモリ足りなくなるの稀ってマジ?
151 :
2017/03/08(水) 07:09:24.17 ID:vbyaKny6
バグにもいろんな意味があって、それを各人が共有できてないように見える。
議論の中心にいる長文氏がそこをクリアにしてくれ。
152 :
2017/03/08(水) 08:41:23.89 ID:f0ZRB9R+
バグの原因のほとんどは認識していない前提条件の差だと思うけどね。
153 :
2017/03/08(水) 09:36:33.28 ID:8YPePj4Q
認識していない前提条件の差にもいろんな意味があって、それを各人が共有できてないように見える。
議論の中心にいる長文氏がそこをクリアにしてくれ。
154 :
2017/03/08(水) 10:27:58.42 ID:WMt88/kI
バグには具体的な事情があって
抽象的な人の目にはそれを認識できてない
155 :
2017/03/08(水) 10:30:55.37 ID:pMznqIBv
>>144
実際問題、テキストエディタよりも統合環境が優れているのはまさに「そんなことでバグが減る」点だよ。
意味論による静的解析で減らせるバグもあるが、構文論のレベルで減らせるバグは十分にsignificantだ。
156 :
2017/03/08(水) 10:48:42.38 ID:icCtDpEn
PHPだとコーディングレベルでバグ仕込んでくるからきらい
157 :
2017/03/08(水) 10:49:28.98 ID:icCtDpEn
>>155
ほんとそれな
158 :
2017/03/08(水) 11:53:16.74 ID:8YPePj4Q
>>155
間違いないね。
俺はvimとemacsというテキストエディターでやってるからわかるけど
絶対一発でコンパイル通ることなんて今まで一度もない。
10回くらい直してやっと通るレベル。
159 :
2017/03/08(水) 12:03:08.39 ID:F8XXETq2
>>155
そーそー。
ドメインに特化するなら、どうとでもグラフィカルにした上で、裏でゴリゴリのチューンしたり複数の計算機に分散させたりできたり。

そういう意味では3DCG屋さんのアセットパイプラインとやらは凄いわ。
動画作ってもらうとき、何故か呼ばれて、よくよく話すとこのシーンでのテンソル場が欲しいって話で、
「初期状態からの経過時間ごとに変わるんだけど、観測点の密度によってはデータ量ヤバいと思うし、欲しいデータ形式言ってくれたら経過時間を引数にもらったら帰すプログラム作るよ」って言って作ったら、
きれいにパイプラインに乗ったらしくていたく感謝された。
160 :
2017/03/08(水) 12:18:59.05 ID:Smd3EfGE
>>146
話が発散してるが構文糖の話の文脈な
あと推敲してくれな時間あんまないから端的に返す

文字数や記号化の話でなく、構文などの単位で短くと言い、適切な抽象化が必要と言ったe.g.構造化

改善の話は効率と思ってるが、反論しても多様過ぎて平行線だろ
選択云々も関係ないからスルー

でその表示意味論全般を含むかの言い方では、構文糖は直接でないだけで意味あるので肯定になる
でも意味ないと言った
操作的には前レスの話で終わり
それですらないなら、何の文脈の「意味論」を援用してるかわからん

まあとにかく俺は正直これ以上お前と絡むの嫌だわ
161 :
2017/03/08(水) 13:50:31.90 ID:sH4DJtGd
.>>118
これって英語のライブラリを使いたくないということでしょ
162 :
2017/03/08(水) 14:06:12.69 ID:icCtDpEn
>>161
そら(読めないんだから)そう(英語はクソ)よ
163 :
2017/03/08(水) 17:17:33.07 ID:p/HdyyRL
>>116>>113 のレスになっているのだから、話はむしろ、英語のライブラリは
日本語に変換して、日本語でプログラミングしたいという方向だろう
164 :
2017/03/08(水) 18:14:25.73 ID:ISgA6Zgl
>>159
あ氏、そこまで書くと周りに特定されないかい?ww

意味論、構文論でのエラーチェックって、
例えば型が違ってますってのは構文論、
関数について引数のどれかに未定義部分がありますてのも構文論という認識でおけ?
165 :
2017/03/08(水) 18:18:35.88 ID:pMznqIBv
「あ」じゃないが、型も引数の数もほとんどの言語では意味論。
166 :
2017/03/08(水) 19:31:19.53 ID:ISgA6Zgl
ありがとう。あ氏だけに向けて書いたわけではないよ。前提とする言語に依るわけね。
167 :
デフォルトの名無しさん
2017/03/08(水) 19:40:39.74 ID:ca5pzCiA
構文糖は神
C++にUFCS導入されるのが待ち遠しい
168 :
2017/03/08(水) 20:09:17.86 ID:8YPePj4Q
2つの似た意味のことをを一つの同じ構文で書けるというのは
独立的な2つの意味を統合して意味が一つになるという意味もあるよな。
169 :
2017/03/08(水) 20:39:54.25 ID:p/HdyyRL
% Prolog

'AはBの要素である'(A,B) :- member(A,B).

'Bからひとつ取り出したのがAである'(A,B) :- member(A,B).

'AはBの要素であれば、則ち、Bからひとつ取り出した要素がAである'(A,B) :- member(A,B).
170 :
2017/03/08(水) 22:07:28.33 ID:F8XXETq2
>>164
同業他社も同じ事してるの見た事あるし、あるあるだと思うよ。

型が違ってます、と言う文句には、割と深い闇が眠ってると思う。
キャストできたり、ポインタを取り出せたりする時点で実は最初から型なんか無かったのかもしれない。
共用体や、類するものがある言語ならいよいよヤバい。
概念が無いと苦労する場合があるのも確かだけど。

>>168
全射と単射で検索するとよりわかりやすい図が出てくると思う。
171 :
2017/03/08(水) 23:02:47.06 ID:oksZ54sT
>>148
>丸囲みは使うなよ。

20年ぶりくらいに聞いたw
ISO2022-JPじゃねーんだから。
172 :
2017/03/08(水) 23:27:39.83 ID:F8XXETq2
>>171
懐かしいだろ。
でも、害しか無いからな。検索にもひっかからん、20までしか無い、汚いフォントが多いなどなど。
結合文字で書いてるならいざしらず、だよ。
173 :
デフォルトの名無しさん
2017/03/08(水) 23:54:40.15 ID:FRdQUG/z
Closureすこ��
174 :
2017/03/09(木) 07:34:03.92 ID:eRv4aOzH
>170
型はキャップやラベルみたいなものだと思ってる。
型関数で明示的に操作することで、やって良いことといけないことをその都度与えておくというか。

>>168
商集合の感覚が大事だと思ってる。/~が何である前提での同じなのか。
175 :
2017/03/09(木) 08:13:25.90 ID:S16Ef4Wi
>>174
そうだよね。印でしかない。
これはこう使ってます、と処理系に教える記号でしか無くて、それこそオペコードとオペランドや、ILのスタックトップと命令から逆に決まるものかもしれない。
そういう意味では、処理系がまず決めた一つの型に別名の縛りが加えられるってのは汎用言語でもDSLでも凄く効果的な、次世代言語にあってほしい機能だと思う。
一見自由に見える不自由は絶対に必要。
176 :
デフォルトの名無しさん
2017/03/09(木) 08:32:31.26 ID:F0HEqrn+
なんか長々と長文で当たり前のこと書いてんな
177 :
2017/03/09(木) 08:43:16.46 ID:F9CUJ5lt
10以上の整数の型とか静的な整数に依存する
型なら静的アサートを使えばできる。
178 :
2017/03/09(木) 08:54:14.24 ID:F9CUJ5lt
コンパイルの必要のない言語は型チェックをコンパイルとは別に
型チェックだけやればいい。
このときわかる範囲で型を推論して間違ってれば実行前にわかる
179 :
2017/03/09(木) 10:23:18.09 ID:BFR+GBdm
型を意識しなければならない言語は旧世代の遺物
180 :
2017/03/09(木) 10:39:16.32 ID:F9CUJ5lt
型チェックの進化形がユニットテスト。
181 :
2017/03/09(木) 10:59:03.07 ID:S16Ef4Wi
>>176
ごめん、冗長だったか。
糖衣文ではないとくだくだ言うのと同じ事してすまん。

>>177
問題は、Objectとかそういう、根となるオブジェクトのキャストじゃないかな。その言語内、そのシステム内で完結するならAdaあたりが既にやってたら話。
182 :
2017/03/09(木) 12:00:23.47 ID:F9CUJ5lt
変数を定義する関数を作って、定義するときはいつもそれをつかって値が正しければ
代入できるようすにすれば型のようなものは作れる。
この関数が静的に評価できれば静的型付けになる。
183 :
2017/03/09(木) 12:12:15.48 ID:S16Ef4Wi
>>182
例えば、スーパークラスや大きな集合の変数を定義して、サブクラスや部分集合のインスタンスを代入する事は可能だけど、
それらを取り出すときに、スーパークラス、大きな集合ではなく、サブクラス、部分集合として扱うのは難しいんでは?
184 :
2017/03/09(木) 12:23:16.65 ID:fMNEO3H7
そもそもサブクラスというのは、ある型の変数に違う型の値を代入できる機能だからね
185 :
デフォルトの名無しさん
2017/03/09(木) 12:33:19.91 ID:6hqIxzkr
型についてはHaskell,Go,Juliaあたりが秀逸
186 :
デフォルトの名無しさん
2017/03/09(木) 18:54:49.57 ID:doSZ2c0j
>>185
interface {}でなんでもオーケー、ジェネリック無いGoが秀逸?
187 :
2017/03/09(木) 19:57:21.71 ID:fMNEO3H7
Pythonを叩くと戦争になりかねないが
Goは静的型の仲間だからいじめても反撃してこないという
これがPythonのメリットとGoのデメリット
188 :
2017/03/09(木) 20:16:16.11 ID:HQPo78pm
みんなたくさん言語経験してるんだな。
189 :
2017/03/09(木) 20:16:48.14 ID:BKoRqRQs
>>184
それはサブクラスではなくサブタイプだ。
190 :
2017/03/10(金) 01:48:14.84 ID:YvYLhW/g
>>186
Goでinterface{}使うのはもう最終手段な気がする。
191 :
2017/03/10(金) 07:28:49.26 ID:hAWWnXrs
大工ストラはどっか行っちゃったの?少し上の辺りは具体的で建設的な話題になってるから、何かコメントしても良いだろうに。
192 :
デフォルトの名無しさん
2017/03/10(金) 07:53:34.94 ID:1pxhheef
プログラム言語に関して抽象的にグダグダ言うのは無意味の極みだからな
193 :
2017/03/11(土) 16:30:18.02 ID:yCUlIQxq
無意味の極みなら自分の無能さを晒さないで済むという利点はある。
なのでよく行われる。
194 :
2017/03/11(土) 17:20:30.04 ID:WF0uzZUg
露悪趣味とかいう悪を晒すことは平気なのになぜ無を晒すのがこわいのか
195 :
2017/03/11(土) 17:36:18.32 ID:UsQ6q5bp
具体的なコード晒すのは一番の危険行為だわなww
以下、議論を進めるために敢えて晒すわww

某言語なのだが、リストに対してfをmapしたあとにさらにgをmapしたものと、
fとgを合成したものを一度でmapしたものとが同じ結果になるという証明が、
以下のとおりに、Haskellなどでの関数の再帰的定義と同じように書ける。
これが不思議でしょうがない。誰か教えて欲しい。reflって何よ?
ちなみに下のは数学的帰納法を使っている。
rewrite部が一つ前のを次のに代入するのに相当している。

mapdiv : ∀{l}{A B C : Set l} -> (f : B -> C) -> (g : A -> B) -> (l : List A) -> map (f ∘ g) l ≡ map f (map g l)
mapdiv f g [] = refl
mapdiv f g (x :: xs) rewrite mapdiv f g xs = refl
196 :
2017/03/11(土) 17:57:50.59 ID:UsQ6q5bp
ミスった。
mapdiv : ∀{l}{A B C : Set l} -> (f : B -> C) -> (g : A -> B) -> (ls : List A) -> map (f g) ls ≡ map f (map g ls)
mapdiv f g [] = refl
mapdiv f g (x :: xs) rewrite mapdiv f g xs = refl
197 :
2017/03/11(土) 19:23:29.11 ID:am67U6Y0
>>195,196 reflってのはreflexivityの略で、左辺と右辺が等しいので命題は成り立つという意味だよ
agdaはよく知らないので全部解説はできないけど、reflよりrewriteが何か調べると分かるんじゃないかな
198 :
2017/03/11(土) 20:22:58.43 ID:OUHk1Upk
ありがとう。でもごめん、書き方が悪かった。
reflの字義でなく関数定義と同じ感覚で書いてるのがなんだこりゃってこと。
上の型の部分が仕様で、下の = reflは実装とか書かれたりしてるのの感覚がいまいち分からない。
rewrite、調べてみるわ。左辺を右辺で置き換えているだけの所もあるがそうでないところもあるようだ。
199 :
2017/03/11(土) 23:44:07.08 ID:jzJlFNOo
>>195
> 某言語なのだが、リストに対してfをmapしたあとにさらにgをmapしたものと、

196のコードを見ると上の文中の f と g とは逆
コードでは g が f より先にリスト l の各要素に作用している
200 :
2017/03/12(日) 00:59:10.61 ID:/gRPWqC6
等式を証明する前に等しいとは何かを決めないと意味がわからない
両辺の型が等しいだけでいいなら他の言語でも簡単に証明できるが
201 :
デフォルトの名無しさん
2017/03/12(日) 07:09:18.06 ID:E7xVInlQ
∀{l}{A B C : Set l} -> (f : B -> C) -> (g : A -> B) -> (ls : List A) -> map (f g) ls ≡ map f (map g ls)
が型で、この型にあった関数を見つけることが証明になることがカリーハワード対応なんだよ
202 :
2017/03/12(日) 09:24:03.72 ID:5INw13PV
agdaじゃなくてcoqになっちゃうけど http://proofcafe.org/sf/ を手を動かしながらやると実感できるよ
↑は日本語だからとっつきやすいし、大体がagdaに適用できるはず。Prop_Jまで読んで触れば分かるはず
203 :
2017/03/12(日) 09:35:36.35 ID:/gRPWqC6
>>201
見つけるだけでは証明にならない
例えばunsafePerformIOを見つけても何の証明にもならない
204 :
2017/03/12(日) 10:36:50.53 ID:E7xVInlQ
unsafePerformIOの型の関数が存在するという証明になってる
205 :
2017/03/12(日) 11:42:36.62 ID:TErsZ5va
それが証明したいことなのかね?
206 :
2017/03/12(日) 11:54:13.45 ID:E7xVInlQ
上の例の型でいうと
∀{l}{A B C : Set l} -> (f : B -> C) -> (g : A -> B) -> (ls : List A)
が成り立てばmap (f g) ls ≡ map f (map g ls) が成り立つという命題に
対応する。
∀{l}{A B C : Set l} -> (f : B -> C) -> (g : A -> B) -> (ls : List A)から
が成り立てばmap (f g) ls ≡ map f (map g ls)への関数はその命題の証明に対応する。
207 :
2017/03/12(日) 12:10:37.30 ID:/gRPWqC6
>>204
型が存在するだけでなく「証明した」クラスのインスタンスにならないと
208 :
2017/03/12(日) 13:07:55.61 ID:5INw13PV
クラスとインスタンスって何を指してるのかさっぱり
dataとvalueなら公理なので証明する必要が無いし、signatureとfunctionなら「証明した」クラスって何ってなる
「証明できなかった」クラスって何よ
209 :
2017/03/12(日) 13:28:54.02 ID:/gRPWqC6
依存型はいいのにクラスやインスタンスはダメな根拠を説明してくれ
カリーハワード対応は、どのような命題と、どのような型システムに限定されるべきか
210 :
2017/03/12(日) 13:57:09.80 ID:5INw13PV
良い悪いじゃなくてどういう意味なのって聞いてる
クラスとかインスタンスという言葉をどういう意図で使っているのか不明瞭
クラス=型でインスタンス=その値っていう意味で使ってるなら、型システムについて語るには迂闊過ぎる
明確に型とクラスが違う言語だってあるんで混乱させるような言葉を使わないでくれ。使うとしたらちゃんと関係性をはっきりさせてくれ
211 :
2017/03/12(日) 18:24:23.43 ID:/gRPWqC6
検索してもわからない言葉があるのは事実
検索すればなんでもわかるというのは嘘
嘘に協力するようなことはあまりやる気が出ない
212 :
2017/03/12(日) 19:14:56.22 ID:5INw13PV
4時間かけてその書き込みは流石に情けないわ
213 :
2017/03/12(日) 19:21:01.82 ID:/gRPWqC6
普通なら情けないより大混乱させる方を選ぶよな
214 :
2017/03/13(月) 13:17:30.54 ID:EOfJmdmf
最近ワトソンを導入しているところの人がIBMがPrologをサポートするのではないか言っていた。どんな機種か聞き損ねたのだが、汎用機で安全に動くものだろうか。
215 :
2017/03/13(月) 22:15:23.08 ID:r5sZRhSo
>>211
>>213
この人、病気か何か?
216 :
2017/03/13(月) 22:43:32.01 ID:15JNqH0U
>>215
お前が来ると周囲の人間が病気になるんじゃないか
名探偵が来ると事件が起きるみたいに
217 :
2017/03/13(月) 23:21:56.25 ID:r5sZRhSo
>>216
それ皮肉のつもりなのか?
218 :
2017/03/14(火) 00:09:55.61 ID:G8tWzBEA
Prologerのポジトークだろ
219 :
2017/03/14(火) 03:49:52.63 ID:NF858NUD
>>218
25年以上前にも同じ噂が流れたことがある。AS/400上にPrologがサポートされると。結局これは誤報で、
GeneXus(当時はPrologで書かれていた)のことだったらしい。
220 :
2017/03/14(火) 08:04:46.19 ID:FzZ45/UG
>>214
Watson絡みだと、SPSSとの絡みの話しかまだ聞いてないな。
221 :
2017/03/14(火) 08:53:01.13 ID:NF858NUD
>>220
私は製品としてのワトソンのユーザではなく又聞きですが、「クイズ王」の
ワトソンのはずなのに検索がサポートされていないらしく、それが不満と
いうことらしい。自然言語解析と質問文の生成にはPrologが使われている
から、今のうちに勉強しておこうという話はあるらしい。IBMがサポートする
という話は今のところ私は聞いていない。
222 :
219
2017/03/14(火) 09:02:38.55 ID:NF858NUD
汎用製品としてサポートされなくても、DSLとしてサプセットが示されれば
十分に役に立つのではないか。Prologとはそういう言語。
223 :
2017/03/14(火) 10:15:15.15 ID:FzZ45/UG
>>221
検索してる訳ではないからね。
条件と条件の組み合わせからの確率を求めるために、今より確度を上げるための質問を作ってるような。
自然言語解析はまた別レイヤの話だったはず。
基本的にはWatsonがわかるようにデータ送ったほうが良かったんじゃないかな。
224 :
2017/03/14(火) 10:47:32.93 ID:NF858NUD
>>223
>検索してる訳ではないからね。
元々のワトソンも即時的な検索はしていないのか。そうすると話の筋が
通らないな。わからない。
Prologについては、自然言語解析の補助に使われていて、それについて
研究者に聞いたところ、もっと大事な部分でも使われていると。
言語解析より大事なところというと質問の生成かなと、勝手に解釈して
いた。
225 :
2017/03/14(火) 10:50:44.02 ID:ezhD6+vS
意味ネットワークから答えを引き出すために使われてるんだと思ってたが。
違うのかな。
226 :
2017/03/14(火) 10:57:28.92 ID:NF858NUD
>>225
そんな基幹部分?
227 :
2017/03/14(火) 11:09:41.56 ID:vWpG+ZpD
>>221
>ワトソンのはずなのに検索がサポートされていないらしく、それが不満と

Hey,WatsonとかOK,Watsonみたいなこと?
228 :
2017/03/14(火) 11:57:18.12 ID:FzZ45/UG
>>224
あくまで、確度の推定しかしていなかったはずだよ。
検索ではなくて、推定。何%でこれっぽい、何%でそれっぽい、みたいな。
三段論法で物事を整理していけるなら、prologとかで整理すりゃいいんだろうけど、それならHPCでProlog動かしちゃおうぜで終わる。

逆にWatsonへは、意味ネットワークへの投げ方って意味では、画像で投げたり、音声で投げたりとか無茶が出来たはずなので、どれをもって入力を解析してるかってのはキッパリ言えないと思う。

結局NDA結ばずだったから俺もフワッとした事しか言えなくてすまん。
229 :
2017/03/14(火) 19:54:23.57 ID:NF858NUD
>>228
ありがとう。
確度の推定というと、30年近く前のエキスパートシステムの時のことを
思い出す。案外、あれに近いのだろうか。
230 :
2017/03/14(火) 23:21:12.43 ID:G8tWzBEA
プログラミング言語なんてつまるとこ1+1の積み重ねだろ
プロロロ厨はプロロロロロを使ったら人工知能ができるとか本気で信じてるの?
231 :
2017/03/15(水) 00:53:34.98 ID:m7IuZi0i
旧世代言語スレでも作れば?
232 :
2017/03/15(水) 01:08:39.07 ID:FiGu7lnE
旧世代言語を列挙して
233 :
2017/03/15(水) 01:25:06.04 ID:mEkvdkZE
FORTRANやCOBOLは現行世代でいいよな
PL/Iならユーザが死滅したか?
234 :
2017/03/15(水) 01:59:11.31 ID:U4yUdXtL
>>230
信じています
235 :
2017/03/15(水) 02:03:53.52 ID:U4yUdXtL
信じる、信じないという問題ではなくて、
述語論理を欠いたら、人工知能にはならないということではないか
Prologでなければならないということではない
236 :
2017/03/15(水) 08:02:55.70 ID:Nk04poRC
真の人工知能なんてものはフォンノイマン型アーキテクチャでは不可能なので量子へパラダイムシフトと同時に新言語が出る
寝て待て
237 :
2017/03/15(水) 19:43:41.23 ID:qae1EIh2
>>236
ええ?!
238 :
2017/03/15(水) 22:34:40.35 ID:jBxwJulH
人述語論理を欠いてる人間はよく見かけるが?
239 :
2017/03/15(水) 23:06:02.15 ID:lNG1lg3A
真の人工知能が誕生したら
もう次世代言語もいらんだろ
人工知能が人間様のケツ拭きまで処理してくれるんだから
毎日うまい飯食って頭に電極刺して最高級のオナニーライフが送れる最高の未来がくっど
240 :
2017/03/15(水) 23:32:33.35 ID:lZYbRWrG
昔は物理学者が手作業で計算するだけで宇宙の全てを処理してくれると期待された
241 :
2017/03/16(木) 00:04:13.44 ID:y81VNmzi
>>238
主語とか倫理の事かな…?
242 :
2017/03/16(木) 00:47:06.24 ID:ckmEHJQv
NANDしかない回路は述語を欠いているのか
243 :
2017/03/16(木) 02:48:18.28 ID:nS5r2MC5
NA, NAND ATTE - !! _o_ _o_ _o_
244 :
2017/03/16(木) 12:45:56.20 ID:XMZButq8
ここ当分は人工知能、とくにAIという言葉は使うとあぶない
ディープラーニングが絡まないとAIではない思っている人さえいる
245 :
デフォルトの名無しさん
2017/03/16(木) 17:41:28.94 ID:L2BK4jtk
学会で焼きなまし法を人工知能と呼んでる奴がいて草生えた覚えがある
246 :
2017/03/16(木) 19:20:39.21 ID:S807fhSR
「何食べる?」
「なんでもいい」
「じゃあカレーな」
「カレーは昨日食べたから嫌」

述語論理に違反してる。
247 :
2017/03/16(木) 20:06:48.49 ID:ckmEHJQv
「なんでもいい」じゃなくて「答えたくない」とか「名状し難い」とかいえばいい
必ず何か答えるべきという前提があると論理が破綻する
248 :
2017/03/17(金) 00:23:15.48 ID:JFrUXgZp
>>245
蟻コロニー最適化法が出てこなくてアリの巣コロリ法って言った奴思い出した
249 :
2017/03/17(金) 08:01:45.05 ID:TGk3cPOz
基本的にAIの問題は探索問題だから、焼きなまし法だろうがA*探索だろうが、AIへの応用は考えられると思うけど?
250 :
2017/03/17(金) 08:03:31.66 ID:TGk3cPOz
最近の「NNにあらずんばAIにあらず」みたいな風潮に乗っかって知ったかするのってかっこ悪いと思う。
251 :
2017/03/17(金) 08:07:18.66 ID:Q/Btx3kS
最近の「NNにあらずんばAIにあらず」みたいな風潮に乗っかって商売にするのってかっこ悪いと思う。
252 :
デフォルトの名無しさん
2017/03/17(金) 09:28:15.87 ID:26Dl/sor
>>249
「Matlabで焼きなまし法を用いること」を人工知能と呼んでたから草生えたんだゾ
AIへの応用とかそんなレベルじゃなかったゾ
253 :
2017/03/17(金) 10:32:55.43 ID:Q/Btx3kS
随分と昔、1990年頃だと思うがAIをテーマにしたシンポジウムで近頃AIと
言ってることとORが以前からやってきたことと、どこが違う?
ということになり、そちらの専門家を呼んで、この点をどう見ているか
議論しようということになった
254 :
2017/03/17(金) 11:49:38.66 ID:cRED0m9R
英語や日本語にもバグがあるわけだが一個だけ批判するなら最もメジャーなバグにするか
それともメジャーなら正常でマイナーな方が異常なのか
255 :
2017/03/17(金) 13:58:39.46 ID:TGk3cPOz
>>253
90年ごろのAIというと、文字認識が流行してた頃かな。
文字認識は典型的な最適化問題だからORとはモロかぶりだな。
256 :
2017/03/17(金) 14:48:16.19 ID:oZ5n5DDz
>>244
とは言ってもNN(応用例)の認識率は圧倒的だしねー
そっちがブームになるのは仕方ない気もする
257 :
2017/03/17(金) 15:31:19.22 ID:M5hLDc+J
>>256
応用ということでブームになるのはわかる
でも認識なんて人工知能のほんの一部
258 :
2017/03/17(金) 22:02:45.09 ID:7ICN0IaO
実家のエアコンはAIのあとに出た
ニューロ・ファジーだぜ!
259 :
2017/03/18(土) 16:18:45.98 ID:CmUN4f7y
人工と自然の対立煽りはわかりやすい
だが知能に対立するものが何かさっぱりわからない
260 :
2017/03/18(土) 19:47:12.42 ID:GPk99yeX
人は自分が動物である証としてセックスする
この場合の、動物とかセックスは多分に知能に対立するものとして
たてられているのではないか
261 :
2017/03/18(土) 21:37:42.80 ID:CmUN4f7y
そういえば動物なら知能じゃなくて遺伝子を品種改良するからな
262 :
2017/03/18(土) 22:56:26.01 ID:tmgM3nCR
流れ無視してすまない。

>>202
遅レスだが、ありがとう。
実はSFとCPDTを読みながらCoqを先にやってた。
でも、上で挙げたreflの感覚が分からないのは型理論の本質的なところを理解していないからだと気づいたので、
Coqよりも型理論寄りのAgdaに変えた。習得済みのHaskellにも近かったし。

今は、HOTTの教科書のChap.1の型理論を読み進めてる。なんか自分の違和感の答えが見つかりそうな雰囲気。理解してから書きこもうと思ったけど、情報への礼を先に言っておくべきと思って書いた。
263 :
2017/03/18(土) 23:06:24.77 ID:tmgM3nCR
流行りの人工知能の一領域は統計を利用して、モノの仕分けとかに利用されてるけど、
そこから先は、論理を扱えるCoq、Agdaなどに渡して処理することになると漠然と思ってる。
連続的なモノを統計で離散化して型に落とし込んで、型での議論に持ち込む。
人間が自然言語でやってるのって、まさにこういうことだと思う。
264 :
2017/03/19(日) 03:07:49.43 ID:gbzadtpN
>>263
Prologではだめなのですか?
265 :
2017/03/19(日) 07:47:10.71 ID:pNv57ouj
人間の自然言語が静的に型付けられているという主張?
POSは型とはちょっと違うと思うけど。
266 :
2017/03/19(日) 09:29:42.74 ID:7GUCcHR6
ごめん、Prologはまだ感覚をつかめてないので下手なことは言えないと思って挙げなかった。

POSってPartially Ordered Set?人工知能、専門ではないんだわ。

手始めにやってみたいなと思ってるのは、型の図式=知識の構造を得ておいて、その図式のこの条件を緩めたら知識として一致してる、とか議論できないかなと。

例えば、移動現象に関係する方程式で、物質、熱、粘性を考えたとき、それぞれ次元としてスカラー、ベクトル、テンソルというズレがあるけど、
それを外せば一致していて、ベクトルで新規の項を見つけたら、他の二つにも対応物というか、見逃していた現象があってとか議論される。
こういう一見違う他領域を結び付けて何かを発見するのに使えないかなと。

チラ見だとそれこそPrologの方が得意そう、というかxmlでワトソンみたいなのが既にやってそうだけどね。
267 :
2017/03/19(日) 10:57:42.71 ID:U5iVsXHK
>>266
スカラは零階、ベクトルは一階のテンソルなんだけど、意識してないだけ。
それぞれの方程式でブレがあると思ってるけど、実はブレなかったんじゃねえの?ってのが物理学者の人のやってること。

知識の構造と言う意味では、SPSS(PSPPにもあった気がするけど)に、デシジョンツリーをサクサク作れる機能があるから、
相関してる、とかそう言うのは過程仮設と集計の連続作業して見たほうが早いよ。
268 :
2017/03/21(火) 01:34:13.51 ID:Zo5CVS0M
prolog厨は専スレでも立てろよ
269 :
デフォルトの名無しさん
2017/03/23(木) 09:15:50.10 ID:9wMBGcic
これらの言語ってほぼ単体で使われないよね?
Javaとかに組み込むん?
270 :
2017/03/23(木) 09:50:58.92 ID:DGRvwCAe
シェルスクリプトで作ったOSも、Javaで作ったOSも、単体で作られてないのは同じ
271 :
2017/03/23(木) 09:53:53.40 ID:DMbSvcf+
272 :
2017/03/23(木) 10:53:48.16 ID:H3+7QbOU
>>269
Haskellの組み込まれたのは見たことない
273 :
2017/03/23(木) 11:46:43.28 ID:dT4NbpKb
TwitterはScalaを捨ててNode.jsに移ったそうです。
http://www.utali.io/entry/2017/02/24/170000


Scalerの信念の拠り所の1つであるTwitterが死んだ
もうScalaはダメかもわからんね
関数型うんぬんよりもさ、
暗黙、烏賊記号乱舞、コンパイル檄遅
この辺りがダメだったんだろうな

オワタよ、本当にオワタ
愛してたよ、Scala
274 :
2017/03/23(木) 13:56:22.90 ID:GetMPoha
>>273
https://www.reddit.com/r/programming/comments/5st3dy/all_of_twitters_mobile_web_traffic_thats_like_a/ddjgi5a/
>necolas  ←Node.js採用について最初にツィートしたTwitterのエンジニア
>Hi, I'm the author of this Tweet. Twitter's API continues to be implemented on the JVM.

TwitterはScalaを捨ててません(少なくとも現在は)
http://kmizu.hatenablog.com/entry/2017/03/22/233335
> 1. Twitterは最近(ここ数ヶ月)にScala CenterのAdvisory Boardにjoinしている
> 2. 置換えたとされるFinagleのコミットが最近でも活発である
> 3. そもそも引用元ツイートで一言も、Scalaを捨てたに相当する表現が見られない
275 :
2017/03/23(木) 14:37:06.11 ID:dT4NbpKb
>個人的な意見ですが、Scalaは美しい仕様を持つ素晴らしい言語ですが、
>関数型+オブジェクト指向という特徴から、学習コストが高すぎると感じました。
>そして実運用をするには、それに加えてJavaのライブラリの知識やJVMのパフォーマンスに気を配る必要があります。
>つまり、面倒すぎる言語なのでしょう。

実質捨てます宣言やん
276 :
2017/03/23(木) 14:48:23.05 ID:GetMPoha
>>275
>今週にはJames Bellenger(僕たちのチームのNode.jsの帝王)が
>残りのログインしていないユーザーのトラフィックをScalaからJavaScriptに移行した。

ここまでがツィートの翻訳だ。
その続きは記事を書いた人の「個人的な意見」だ。
277 :
2017/03/23(木) 15:22:18.24 ID:eYsVrQFw
なんかAda捨てた流れ思い出しちゃう
とにかく簡単で見慣れた記法で人集めが楽とかそんなんばっか
278 :
2017/03/23(木) 15:44:01.50 ID:DGRvwCAe
ニュースを見てから動くのは遅い
しかもフェイクニュースのリスクもある
だから事実ではなく自分の意見を持って動く方が速いしリスク管理しやすい
279 :
2017/03/23(木) 17:36:04.80 ID:V7qjAb4k
var宣言があり標準ライブラリにミュータブルクラスがあるスカラのどこが関数型なのかわかりません。
誰か教えてください。
280 :
デフォルトの名無しさん
2017/03/23(木) 18:54:58.39 ID:t4BX+2Gm
>>279
副作用あるのがだめなら関数型とはうたえないって言うの?
ocamlもダメか?
281 :
2017/03/23(木) 19:07:08.08 ID:V7qjAb4k
スカラは副作用がお手軽すぎませんかね?
ライブラリコードを読んでも破壊代入だらけでとても関数型とは思えないのですが。
282 :
2017/03/23(木) 19:14:50.43 ID:cbUpLCW6
じゃあRは副作用がないから関数型なのか?
283 :
2017/03/23(木) 23:00:16.95 ID:dT4NbpKb
そうであーる
284 :
デフォルトの名無しさん
2017/03/24(金) 12:02:11.34 ID:jgAm1kRt
Scalaはガチガチの関数型ではないからな
285 :
2017/03/24(金) 12:11:45.40 ID:Vu4/NCj/
フィルタ言語やクエリ言語ってだいたい関数型と言えてしまうんじゃないの?
別に新しい概念でもない気がする。
286 :
デフォルトの名無しさん
2017/03/24(金) 12:16:57.43 ID:ol6kAPRp
別に新旧は関係ないだろ。
んなこといったらlispより古い関数型言語あんのかよ?
287 :
デフォルトの名無しさん
2017/03/24(金) 12:23:47.67 ID:jgAm1kRt
pythonが静的言語だったら喜んで使うけど動的言語は大嫌い
288 :
デフォルトの名無しさん
2017/03/24(金) 12:30:46.46 ID:imsTG+qA
Cythonはいいぞ
289 :
デフォルトの名無しさん
2017/03/24(金) 12:33:53.83 ID:jgAm1kRt
何で機械学習のライブラリはPythonばかりなんだろう
機械学習とかアルゴリズムの塊だからHaskellの方が向いてrそうだけど
290 :
2017/03/24(金) 13:09:45.95 ID:wKLctAe5
Haskellは見た目は大きいが中身が少ない
Pythonは餃子ならHaskellは肉饅
291 :
2017/03/24(金) 13:24:11.16 ID:poXmNItA
>>289
スクリプトだからだろ
292 :
2017/03/24(金) 14:50:52.48 ID:7Exrmzyh
>>289
Travis OliphantがSciPyとNumPyを作ったのが大きい。
Google Summer of Codeでscikit-learnが作られたのが決定打だ。

なぜ機械学習にPythonが選ばれるのか
http://qiita.com/yaju/items/5502115d7e3d06e6bbdd
293 :
2017/03/24(金) 17:32:56.06 ID:SZtJoIW2
結局、実用には何か足りないんだよね
haskellは教育用言語
294 :
2017/03/24(金) 17:42:24.32 ID:2f+nVLXA
nltkの存在も無視できんわな
295 :
2017/03/24(金) 18:33:25.33 ID:Vu4/NCj/
>>286
defvarやらあるからなかなか純とは。。
296 :
デフォルトの名無しさん
2017/03/24(金) 18:46:44.65 ID:ol6kAPRp
>>295
なんで純粋かどうかなんてでてくるんだよ。
勝手に条件の後付すんなよ。
297 :
2017/03/24(金) 18:52:24.63 ID:XfLnpFqH
implicitな条件だったんだろ
298 :
2017/03/24(金) 19:16:05.28 ID:Vu4/NCj/
>>296
>>279
の話から
>>285
の、フィルタ言語とクエリ言語に言及してるんだよ。
だから、SQLやその他そういうのを含まず、クエリ(問合せ)と言ってるんじゃないか。
もとからあった条件だろ。
299 :
2017/03/24(金) 19:19:19.90 ID:Vu4/NCj/
俺の話が読み取れないんじゃなくて、他の人間の話が読み取れないなんて、
遡って俺の発言読まなきゃいけないとかそういう次元じゃねえじゃん。
ホントに何考えて発言してるかわからん。思考と指がいろんな意味で直結してんじゃねえの?
300 :
デフォルトの名無しさん
2017/03/24(金) 20:14:10.16 ID:ol6kAPRp
直結w
ある意味かっこいいww
301 :
2017/03/24(金) 22:08:32.99 ID:wKLctAe5
クエリ言語は関数等を動的に定義したり動的にコンパイルしたりするのが面倒臭い
それが嫌なら定義を書く言語とクエリ言語は二つに分ける
肉とパンを別売りにする
302 :
デフォルトの名無しさん
2017/03/24(金) 22:48:48.51 ID:cWpKc3e2
>>279への返答を>>285で安価つけずにしておいて理解してもらえなくて発狂とかガイジかな
112KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: