次世代言語13 Go Rust Swift Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/08/20(月) 21:55:53.03ID:JBCtYT+G
スレタイ以外の言語もok

前スレ
次世代言語12 Go Rust Swift Kotlin TypeScript
http://mevius.5ch.net/test/read.cgi/tech/1530664695/
2018/08/30(木) 03:31:50.70ID:fTlUE3DU
コミュニケーションじゃなくてプログラミングスタイルで繋がりたいんだろうが
実はそっちのほうがもっと無理
2018/08/30(木) 04:38:17.14ID:mi8K02wj
語学じゃなくて心理学とか脳科学とかでシンギュラリティしたいんだろ
そっちのほうが無理
2018/08/30(木) 07:11:50.68ID:K2XYaSpY
ワイノ話を聞かないとは無能揃いだね?
2018/08/30(木) 07:34:59.92ID:wxlIjpoe
半角の人はなぜ駄目かを全く読んでないのな。
2018/08/30(木) 07:39:56.35ID:K2XYaSpY
てゅかさ。深夜に書き込んでるってことはおまいら無職だろ
無職風情がワイ様無視してワナビー法則でイキってるとかマジゴミだろωωω
2018/08/30(木) 08:11:26.07ID:ff0XXJ3a
無駄だからそんな書き方しなくていいってだけで、それ自体何か害があるわけじゃないから
文法上禁止してしまう理由はないと思うがなぁ。
レビューで指摘するのはそれがコードスメルだからってだけだろう。
2018/08/30(木) 09:09:42.55ID:hUyiY/SJ
a == trueが禁止されたのでa ^ !trueに置換しておきました
2018/08/30(木) 09:55:24.67ID:K2XYaSpY
マジこのワナビーの法則の話いつまで続くんや
夏厨死ねよ
2018/08/30(木) 11:01:42.71ID:e8DSDd9g
>>225
文字列なら "" と "0" がfalse
数値なら0だけがfalse
235デフォルトの名無しさん
垢版 |
2018/08/30(木) 11:59:46.41ID:A5Nytyjy
perlには '0 but true' という、数値として 0 と比較すると一致するが if でそのまま使うと true 扱いになる特殊な値があったりする。
2018/08/30(木) 12:14:56.63ID:6I1bUcuW
次世代を担うに相応しい真偽評価戦略を語るべし
2018/08/30(木) 13:15:05.68ID:io9LYUoZ
次世代はif文が消えjsのthen的なものになります
2018/08/30(木) 13:47:18.38ID:6sRyznT+
うえー
2018/08/30(木) 13:49:00.74ID:e8DSDd9g
数値の偽は0
文字列の偽は "" "0"
オブジェクトの偽は null "" "0" その他
階層が深いほど偽が多い法則
2018/08/30(木) 13:57:19.48ID:k9/abrGo
次世代言語にはifもforもない
2018/08/30(木) 14:29:05.96ID:dTt5OSNq
アスペはこういうところに拘ってしまって先に進めないんだよね
2018/08/30(木) 14:47:28.76ID:e8DSDd9g
飯炊き三年握り八年
2018/08/30(木) 18:20:12.51ID:fWBwT80E
ちゃんと読んでないけど
boolなら
if checked / if !checked
でいいやん
2018/08/30(木) 18:57:30.25ID:JpHgwHVB
数値なりリストなりを暗黙に真偽値比較せずに
明確にすればいいだけじゃないの?
2018/08/30(木) 19:30:44.87ID:7mcJbcKo
直和な幽霊型でCheck|Uncheckを型に持たせて管理すればいいよ
246デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:15:21.94ID:+O/rJ+xn
if で boolean 型以外を許さず、更に boolen 型の値の比較も許さない言語を作れば解決。
2018/08/30(木) 21:51:23.27ID:ff0XXJ3a
というかそれが普通なんだけどな。
型がないB言語の特徴を受け継いだCがなまじヒットしてしまったせいで
後続の言語もその悪習を真似るようになってしまった。
2018/08/30(木) 22:07:01.18ID:Ah+zwqqR
こんなしょうもないことに時間使ってもバグは減らないっていう事実にそろそろ気付こうよ。
249デフォルトの名無しさん
垢版 |
2018/08/30(木) 22:21:35.61ID:/0YXnEsV
低学歴知恵遅れが書いたなぜダメかを読んでない?
まず読む必要がない
頭悪すぎてお話にならないからな

適切にダメなケースを書いてるのはオレしかいないからな
当然、低学歴知恵遅れのレスなんかどうでもいいことになる
2018/08/30(木) 22:48:08.67ID:39ABXWI9
まず読む必要がない事を書いてくれてありがとうな
2018/08/30(木) 23:10:41.48ID:e8DSDd9g
些細なヘイトスピーチもきっちりデバッグしてる欧米の文化の方がITの才能がある
2018/08/31(金) 02:17:18.78ID:/VjCJv9E
>>233
ワナビーの法則
って何?
ググってもこのスレしか出てこないんだが
https://i.imgur.com/PzUYieo.jpg
2018/08/31(金) 05:21:39.77ID:J05bSyHo
>>248
ホントこれ
2018/08/31(金) 11:41:15.33ID:YfdxjJ3c
無益なものを批判する暇があったら
有害なものを批判しろよ
255デフォルトの名無しさん
垢版 |
2018/08/31(金) 19:26:31.62ID:waeuZPFW
右の睾丸を触られたら左の睾丸を触りなさい
2018/08/31(金) 19:58:49.98ID:YfdxjJ3c
刑を執行してはいけないが、裁判と有罪確定まではやっていい
257デフォルトの名無しさん
垢版 |
2018/08/31(金) 21:20:12.74ID:4ZfpOo1s
ギルティ
死刑!
2018/08/31(金) 23:12:29.91ID:hg6LXyjO
>>243
それが常人のイディオム
bool型の変数に説明的な変数名をつけるだけで
ifの可読性が増すなんてことは
自分で思いつくか
人のを見て気付くか
人に教わって知るか
いずれかの方法で自分のものにするはず

たぶんアホは変数名をflagなどにしてて
「フラグがTRUEのとき」などという覚え方をしてるからこそ
if flag_foo == true などという書き方になるんやろな、知らんけど
2018/08/31(金) 23:21:27.80ID:7Lf8QxyM
いつまで初心者な話題ばっかやってんの
つまりはそういうことなの?
2018/09/01(土) 02:13:15.43ID:BxU4Z/sw
a < b < c みたいな連続比較(演算子の連結?)って、なんで流行らないの?
2018/09/01(土) 02:24:21.20ID:I7Wpi/+P
Python、Julia、Mathematica辺りはできるね
意外にMatlabはできない
2018/09/01(土) 07:28:39.38ID:sv0UK566
>>260
大して簡素化しない割には、ANDしか対応できないからじゃね?
2018/09/01(土) 07:59:09.68ID:O36P/gVq
rangeにinかなにかでよさげ
2018/09/01(土) 08:01:36.87ID:FRKhXQkv
>>260
文法が複雑になるし、等値比較の扱いをどうするかが難しい
a < b < c == e >= f
これC系の優先順位に倣うと (a < b < c) == (e >= f) が自然だろうけど、たぶんこの式を書いた人の期待していた結果ではないだろう
2018/09/01(土) 10:17:17.34ID:y+HuzDXi
数学では a < b < c って表記は良くあるけど
a < b < c = e はそんなに出てこない気がする

そして a < b < c = e >= f はガイジが書いたとしか思えない
2018/09/01(土) 10:18:25.01ID:/xY33kfI
でも個人開発じゃなかったらガイジも書くから
2018/09/01(土) 10:31:17.38ID:8XWt4TWp
>>265
そんなに出てこなかろうが書けなきゃ一貫性に欠ける
a < b <= c の形に限るんなら a in (b..c] の方が美しいわ
2018/09/01(土) 10:56:33.83ID:y+HuzDXi
>>267
あんまり出てこないって言っただけで、>>265の二つめは出来た方が良いと思うよ。三つめガイジだけど
で、>>261に挙げられた言語は出来ないの?出来るんじゃね?
269267
垢版 |
2018/09/01(土) 11:13:45.36ID:8XWt4TWp
>>268
その上で、範囲チェックにしか使えないんなら範囲チェックに特化した表記の方が望ましいという意見なんだけど、言ってる意味わかる?
表記上は一般的に広く使えそうに見えて実は特定の限定的なパターンしか認めないってのは典型的なダメ言語だよ
2018/09/01(土) 11:16:35.64ID:33FbYz6y
「数学では〜」っていう言い方見ると悲しくなる
高校数学やそれに毛の生えたようなとこしか触ってないのに
それをもって「数学では〜」などと笑止千万

これは>>265にあてつけたんじゃなくて
昔からずーっと思ってたこと
2018/09/01(土) 11:19:23.27ID:4l6T8pEq
まさかMaybeが出来ない初心者なんていませんよね

foo p x y = if p y x then Just x else Nothing
bar m p = maybe False p m

(a <= b && b < c && c == d)
== ((Just a >>= foo (<=) b >>= foo (<) c) `bar` (==d))
2018/09/01(土) 11:19:31.04ID:y+HuzDXi
>>269
いや、だからキモいしガイジしか書かないけど、書けた方が良いって言ってんじゃん
で?>>261の言語は書けるんじゃないの?
2018/09/01(土) 11:27:25.51ID:pVUyxPYl
数学でも a < b > c みたいな書き方はしないし
許してる言語もないだろ
2018/09/01(土) 11:37:23.08ID:8XWt4TWp
>>273
それが文法上許されないことを説明する一貫性のある理由がない
<と<=を特別扱いみたいな一貫性の欠片もないガイジ仕様にするくらいなら要らない、という設計判断は十分にありうる
2018/09/01(土) 11:47:25.54ID:4l6T8pEq
必要か不要かを判断するコストは実際にはものすごく高い
簡単に作れるかどうかで判断してたくさん自由に作ってどれかひとつ成功すればいい
2018/09/01(土) 11:52:13.22ID:VcQ5WdQC
Juliaだと a < b > c は合法だった
多分 a < b && b > c を計算してるっぽい
しかし文法的に一貫性があるのはわかるのだが
これが書けてしまうのはやはり気持ち悪いな

この手のでRangeで書きにくいやつだと、
行列の上三角成分だけ舐めるときに
1 <= i < j <= n
とか書けるとちょっとだけ嬉しい
2018/09/01(土) 12:00:11.31ID:bn2L0QEe
a < f(b) < c
fは何回呼ばれるべきか
2018/09/01(土) 12:11:13.69ID:xDnWzldj
理想的にfが純粋関数でbの値がconstで1回だけ評価が素直だと思うが
2018/09/01(土) 12:11:17.71ID:Lo8welT8
pythonの場合、 a < b という式の型がboolなのに (a < b) < c ができてしまうというのが
非常に分かりにくいね。なんというか、むりやり捻じ込んだ感。
2018/09/01(土) 12:14:38.95ID:+BAvd4bn
a < b < c

b > a and b < c

どっちがわかりやすいか?
2018/09/01(土) 12:36:45.65ID:rtR930fJ
なんで
a < b and b < c
じゃないの?
2018/09/01(土) 12:53:55.22ID:7zNJuyPV
センス
2018/09/01(土) 13:05:45.26ID:8oBLXasx
>>280
1=1<2だったらどうすんの?
2018/09/01(土) 13:19:35.77ID:vTDtzWWE
>>280
コンパイラは大抵
b > a and b < c
のがわかりやすいと判断している。
285デフォルトの名無しさん
垢版 |
2018/09/01(土) 18:37:02.95ID:/wwW4VSs
だれかがいってるように
マジで頭悪い。。。

aho = a < b ← 結果はブーリアン
baka = aho < c ← ブーリアンを大きさで比較してる
< は普通2項演算子で予約されてるからな

3項演算子みたいに使ってない記号を組み合わせるならまだ理解できる
2018/09/01(土) 18:51:27.82ID:TMvFd8Nd
>>281
その書き方だと 0 < x < 100 が
0 < x and x<100になるからセンス悪いと思った

x > 0 and x <100

xが0より大きく100より小さいにマッチするような記法がない
2018/09/01(土) 19:03:39.36ID:7zNJuyPV
ワロた
2018/09/01(土) 19:34:08.16ID:+4zR3ral
半角の人はいい加減に自分が馬鹿なことを認めてほしい。
2018/09/01(土) 19:34:46.46ID:8XWt4TWp
>>285
ineqop ::= ('<' | '<=' | '>' | '>=')
ineqexpr ::= shiftexpr { ineqop shiftexpr }
みたいに定義すりゃいいだけだろ
290デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:47:34.46ID:/wwW4VSs
なにも解決してない
構文規則と演算の規則は
なんの関係もないからな

知恵遅れは構文規則でかければ
自動的に演算規則ができて

なんでも演算できると思ってるらしい
構文規則と解釈が分離できてない

コレが低学歴知恵遅れの限界
ホントな気の毒なぐらい頭悪い
2018/09/01(土) 19:51:19.20ID:8XWt4TWp
>>290
任意個数のオペランドを持ったノードとして左から順に評価すればいいだけだぞ
CやJSのカンマ演算子なんかと一緒
292デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:52:39.70ID:/wwW4VSs
a < bは
普通にブーリアン返す演算子だからな
普通にブーリアン返すのが正しい演算だ
293デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:53:45.56ID:/wwW4VSs
aho ? baka1 : baka2
全然違う
2018/09/01(土) 19:56:29.75ID:4l6T8pEq
a < b の値は最初はintだったのをboolに変えたんなら次はMaybeに変えてもいいぞ
295291
垢版 |
2018/09/01(土) 19:56:58.30ID:8XWt4TWp
カンマ演算子と一緒は間違いだな、撤回する
例えば配列リテラル式と一緒だと考えればいい
あれは任意個数のオペランドを引数にとって全体として配列型を返す演算子であると解釈できる
296デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:57:48.29ID:/wwW4VSs
非ゼロを非ゼロでないかを
真偽にしても別に問題はない
297デフォルトの名無しさん
垢版 |
2018/09/01(土) 20:00:11.15ID:/wwW4VSs
真偽値をどういう値にするかどうかなんか関係ないからな
式の評価で真偽判定を行わないという解釈の問題になるからな
298デフォルトの名無しさん
垢版 |
2018/09/01(土) 20:01:12.82ID:/wwW4VSs
とりあえず低学歴知恵遅れは
とてつもなくオツムに問題があるのが
このスレみててもよく分かる

適切な問題の分離のしかたが分かってない
2018/09/01(土) 20:03:28.96ID:8XWt4TWp
アホだなあ
演算記号が単独で式を構成しなければならないなんて決まりはない
全体で式を構成すると考えれば何の問題もない
300デフォルトの名無しさん
垢版 |
2018/09/01(土) 20:06:47.42ID:/wwW4VSs
a < b < c
まず a < b を評価して
その評価結果を
(a < b) < c
で評価するという決まりだからな
コレが正しい解釈になる

それ以外は不適切な解釈
2018/09/01(土) 20:07:36.43ID:Lo8welT8
Iconという言語だとこれが、a < b という式は成功した場合の値がbになるから a < b < c が
自然に実現できるんだよな。
2018/09/01(土) 20:13:43.79ID:8XWt4TWp
>>300
じゃあ関数呼び出し式 (f)(a, b) はどう解釈する?
君のいう正しい解釈のように ((f)(a))(b) と解釈する言語も実際に存在するけど、あまり一般的ではないよね
2018/09/01(土) 20:22:54.83ID:rtR930fJ
>>300
この辺レガシーな言語なら最初の比較で出るのはbool型になるからcと比較してまともな結果になるはずがないんだよね
2018/09/01(土) 20:25:39.05ID:Lo8welT8
>>302
二項演算子 a < b と三項演算子 a < b < c が同時に存在するというイメージなんだろうか。
a < b がコンテキストによってboolを返すかbを返すか変化するという方がまだ無理がないな。
2018/09/01(土) 20:32:20.02ID:4l6T8pEq
if(対象 == オブジェクト)
if(事象)
対象コンテキストと事象コンテキスト
すべてがオブジェクトといったな、あれは嘘だ
306デフォルトの名無しさん
垢版 |
2018/09/01(土) 20:50:05.62ID:/wwW4VSs
関数呼出規約なんかこの話となんの関係もない
まともなオツムしてたら関数呼出で順序の副作用がおきるような書き方なんかしないからな

昔のMCSのコンパイラでも例えば、cdeclとpascal呼出規約があった
cdeclとpascal呼出規約をかえると、結果が変わるような知恵遅れなコード書くヤツなんか
このスレにいるような低学歴知恵遅れしかいない

わかった?
2018/09/01(土) 20:56:58.84ID:1LBe8Cyr
>>304
C言語的な演算子の概念に拘るなら、比較式はn項演算だと考えれば理解しやすいかな
実際scalaやF#のmatchとかRubyのifとかはn項演算の例だし、そんなに珍しいもんじゃないよ
2018/09/01(土) 21:36:47.04ID:Lo8welT8
>>307
構文解析の難易度の話なんだけど、matchなどといった開始語を欠いているうえに
<=や>など他の演算子との混在も考慮しなければならないとなったら、かなり
困難なものになる思うが。
309デフォルトの名無しさん
垢版 |
2018/09/01(土) 21:39:24.86ID:/wwW4VSs
それは可変引数をもった特定の関数呼び出しと意味的同じだからな
低学歴知恵遅れにそんなこといってもしょうがない
2018/09/01(土) 21:49:16.31ID:4l6T8pEq
学校で教えるのはプログラムではなく物理とか微分とかなので
学歴重視はハードウェア重視や機械学習重視になりがち
2018/09/01(土) 21:57:05.44ID:OmCLr4/c
>>308
>>289で終わりじゃね
312デフォルトの名無しさん
垢版 |
2018/09/01(土) 22:17:22.89ID:/wwW4VSs
知恵遅れに理解はムリ
知恵遅れの自覚がまったくいない
2018/09/01(土) 22:26:51.47ID:Lo8welT8
>>289はshiftexprの定義がないんで厳密なところがわからんけど、後者のshiftexprは
ineqexprじゃないの?
2018/09/01(土) 22:39:41.95ID:bEXb+lmV
>>313
合ってるよ
これでわかるか?
比較式 ::= 低優先順位の式 {比較演算子 低優先順位の式}
{}はEBNFで一回以上の繰り返し
2018/09/01(土) 22:40:56.19ID:bEXb+lmV
失礼
低優先順位じゃなくて高優先順位の式の間違いだな
316デフォルトの名無しさん
垢版 |
2018/09/01(土) 22:41:42.09ID:/wwW4VSs
>>300でオワリ
それ以外は知恵遅れの寝言だからな
317デフォルトの名無しさん
垢版 |
2018/09/01(土) 22:45:20.98ID:/wwW4VSs
構文解析できればなんでもできると思い込んでるからな
低学歴知恵遅れには、その先の解釈のレベルまでおとしこむ知能がない
2018/09/01(土) 22:56:42.31ID:NoXfDUjm
オペランドを順に評価しながらandで繋ぐだけだろ?
半角クンにとっては難しいのかな
319デフォルトの名無しさん
垢版 |
2018/09/01(土) 22:58:45.07ID:/wwW4VSs
そういう問題じゃないからな
やはり知能の問題
2018/09/01(土) 23:23:52.10ID:Omwrv276
小学校でプログラミング教育ってチューリングマシンとか
ラムダ計算とかするわけでしょ
すごいよね
2018/09/01(土) 23:34:33.99ID:0V80T0Sa
ブーリアンヴォーイズは、いい加減パーキンソンの凡俗法則でググろうな
322デフォルトの名無しさん
垢版 |
2018/09/01(土) 23:44:33.13ID:33FbYz6y
流れ本体とは関係ないが
>>286のレスが意味不明
とくに
> 0 < x and x<100になるからセンス悪いと思った
この部分

>>281へのレスとしては
最後の一行もさっぱり意味分からんが
2018/09/01(土) 23:59:16.46ID:siIpxtD6
>>280
a < b and b < c
2018/09/02(日) 00:22:13.35ID:W5ilUQmj
上座と下座みたいなセンスかな
OOPでは引数の中で一番偉いやつを左に書くよな
2018/09/02(日) 00:30:30.37ID:KFJPmGJr
a < b > c が合法になるぐらいなら a < b && b < c でいい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況