スレタイ以外の言語もok
前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/
探検
次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/10/01(火) 02:58:03.93ID:aEwUIB6s340デフォルトの名無しさん
2020/02/01(土) 15:31:32.99ID:eXUHWthh 言語の勝ち負けは資金力がものを言う
もうPHPやRubyの時代とは違って個人が作った言語が日の目を見ることはない
ここの一部が熱狂してた中学生言語はそろそろスポンサーを得たのかな?w
もうPHPやRubyの時代とは違って個人が作った言語が日の目を見ることはない
ここの一部が熱狂してた中学生言語はそろそろスポンサーを得たのかな?w
341デフォルトの名無しさん
2020/02/01(土) 15:46:08.21ID:TULylXcw 何でお前が勝ち誇っとんねん
342デフォルトの名無しさん
2020/02/01(土) 15:48:55.51ID:fiLTG5Nb Rubyそのものをdisる訳じゃないが
Rubyはパトロンが付いてから落ち目になった印象
Rubyはパトロンが付いてから落ち目になった印象
343デフォルトの名無しさん
2020/02/01(土) 16:04:34.83ID:uIRhn79u 言語の良し悪しだけじゃないからな
ドキュメント ライブラリ ビルドツール IDE プラットフォーム対応
企業にせよ団体にせよ組織的な人手が無いと厳しい
ドキュメント ライブラリ ビルドツール IDE プラットフォーム対応
企業にせよ団体にせよ組織的な人手が無いと厳しい
344デフォルトの名無しさん
2020/02/01(土) 16:18:48.79ID:aiv1Gn1Y アイデア勝負から体力勝負ってか
346デフォルトの名無しさん
2020/02/01(土) 17:13:44.13ID:caubOhav リーナス・トーバルズや
347デフォルトの名無しさん
2020/02/01(土) 17:35:34.79ID:iMzFL2if あまねく型無し糞言語池沼がすべからく滅びますように
348デフォルトの名無しさん
2020/02/01(土) 17:39:09.56ID:9BMLg08w まだ滅びてない型無し言語って何が残ってたかな
349デフォルトの名無しさん
2020/02/01(土) 18:06:53.35ID:9qdhvoJU アセンブラ
350デフォルトの名無しさん
2020/02/02(日) 00:28:55.56ID:7b/FZYuN 諦めたらそこでギブアップやからな!
351デフォルトの名無しさん
2020/02/02(日) 00:33:23.43ID:vTjBAXNr 結局書いてて楽しい言語と保守しやすい言語って違うってのが
rubyが根本から間違ってるところだろ。
rubyが根本から間違ってるところだろ。
352デフォルトの名無しさん
2020/02/02(日) 00:36:53.43ID:N9qFFSK9 あれが楽しいとかゲエジだら
型無し糞言語は補完も頭悪いし、書いてて全く楽しくない
おまけに保守性も最悪ときたら、ほんとにほんとにゴミでしかないゴミ
今すぐ回線切って首吊って死ねや
型無し糞言語は補完も頭悪いし、書いてて全く楽しくない
おまけに保守性も最悪ときたら、ほんとにほんとにゴミでしかないゴミ
今すぐ回線切って首吊って死ねや
353デフォルトの名無しさん
2020/02/02(日) 06:02:43.82ID:DhujQgFD Rubyが型無しとか頭わいてんのか
355デフォルトの名無しさん
2020/02/02(日) 09:21:26.51ID:oSeNT+fp Zigって次世代っぽいよな
356デフォルトの名無しさん
2020/02/02(日) 10:15:11.33ID:Ng7YaIlp 型無し言語とか
rubyが保守しにくいとかw
相変わらず低スキル&エアプの巣窟やなココ
rubyが保守しにくいとかw
相変わらず低スキル&エアプの巣窟やなココ
357デフォルトの名無しさん
2020/02/02(日) 10:55:21.44ID:N9qFFSK9358デフォルトの名無しさん
2020/02/02(日) 15:24:04.03ID:9xJm9DGW >>347
確かに、滅んで欲しい
SML(静的型付け):
- (1, 2, 3);
val it = (1,2,3) : int * int * int (* タプル型(要素は整数型) *)
- (1, true, "Foo");
val it = (1,true,"Foo") : int * bool * string (* タプル型(要素の型は混在) *)
- [1, 2, 3];
val it = [1,2,3] : int list (* リスト型(要素は整数型) *)
- [1, true];
stdIn:12.1-12.9 Error: operator and operand don't agree [overload conflict]
operator domain: [int ty] * [int ty] list
operand: [int ty] * bool list
in expression:
1 :: true :: nil (* 要素の型が混在するリストは誤り *)
(長いので続く)
確かに、滅んで欲しい
SML(静的型付け):
- (1, 2, 3);
val it = (1,2,3) : int * int * int (* タプル型(要素は整数型) *)
- (1, true, "Foo");
val it = (1,true,"Foo") : int * bool * string (* タプル型(要素の型は混在) *)
- [1, 2, 3];
val it = [1,2,3] : int list (* リスト型(要素は整数型) *)
- [1, true];
stdIn:12.1-12.9 Error: operator and operand don't agree [overload conflict]
operator domain: [int ty] * [int ty] list
operand: [int ty] * bool list
in expression:
1 :: true :: nil (* 要素の型が混在するリストは誤り *)
(長いので続く)
359デフォルトの名無しさん
2020/02/02(日) 15:24:32.12ID:9xJm9DGW (>>358の続き)
Python(動的型付け):
>>> (1, 2, 3)
(1, 2, 3) # タプル型(要素は整数型)
>>> (1, True, "Foo")
(1, True, 'Foo') # タプル型(要素の型は混在)
>>> [1, 2, 3]
[1, 2, 3] # リスト型リスト型(要素は整数型)
>>> [1, True]
[1, True] # リスト型(要素の型は混在)
Python(動的型付け):
>>> (1, 2, 3)
(1, 2, 3) # タプル型(要素は整数型)
>>> (1, True, "Foo")
(1, True, 'Foo') # タプル型(要素の型は混在)
>>> [1, 2, 3]
[1, 2, 3] # リスト型リスト型(要素は整数型)
>>> [1, True]
[1, True] # リスト型(要素の型は混在)
360デフォルトの名無しさん
2020/02/02(日) 15:27:54.03ID:sFvJQflI 未だにそんないにしえの言語持ち出してホルホルしてる型無し糞言語じいさん・・・
361デフォルトの名無しさん
2020/02/07(金) 14:34:28.70ID:a6hn8dag ロートルは氏ね
362デフォルトの名無しさん
2020/02/10(月) 20:57:41.54ID:vVtjhTfX 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
https://www.atmarkit.co.jp/ait/articles/2002/10/news038.html
https://www.atmarkit.co.jp/ait/articles/2002/10/news038.html
363デフォルトの名無しさん
2020/02/10(月) 21:35:25.56ID:Dl8kxxCi >>362
>Rustのナイトリーチャネルで、非同期プログラミング機能が強化された不安定版が入手できるようになった
>Discordはナイトリーリリースを導入し、問題が発生した際にはRustチームと協力して対処した
頑張ったなw
>Rustのナイトリーチャネルで、非同期プログラミング機能が強化された不安定版が入手できるようになった
>Discordはナイトリーリリースを導入し、問題が発生した際にはRustチームと協力して対処した
頑張ったなw
364デフォルトの名無しさん
2020/02/15(土) 15:20:00.59ID:J1bovO5o まあガベコレに手を入れるくらいならc++, rustって選択にはなるわな。
365デフォルトの名無しさん
2020/02/15(土) 15:23:11.73ID:YlxUawVa ガベコレって呼び方ダサっ
366デフォルトの名無しさん
2020/02/15(土) 15:26:47.98ID:HP9UoaRz ファイファンのことFFって呼んでそう
367デフォルトの名無しさん
2020/02/15(土) 23:36:38.39ID:XID0eZBS ドラゴボ、アダビデ
368デフォルトの名無しさん
2020/02/16(日) 01:00:22.94ID:yLDkBP53 マナル
369デフォルトの名無しさん
2020/02/16(日) 16:39:43.39ID:e+hZCGM4 ガベーコレ
370デフォルトの名無しさん
2020/02/16(日) 17:10:35.02ID:w0IbR+6u 呼び方とかクソ議論だと盛り上がるのな
371デフォルトの名無しさん
2020/02/16(日) 17:24:03.66ID:U3PjlFnp ガペ
372デフォルトの名無しさん
2020/02/18(火) 00:05:13.18ID:h15Bw/Qz Rustの時代来て欲しいけどやっぱ難しいんだよね
373デフォルトの名無しさん
2020/02/18(火) 00:09:41.30ID:M/XUPoxw 型無し糞言語は肉片一つ残さず消え去って欲しい
374デフォルトの名無しさん
2020/02/18(火) 01:56:31.44ID:Az88Dn7G 動的型付け定期
375デフォルトの名無しさん
2020/02/18(火) 08:00:03.50ID:KHr4ndHy コンパイラがメチャ賢くなってあらゆるプログラムが最適化で削除されるようになったら消滅する議論
376デフォルトの名無しさん
2020/02/18(火) 09:26:02.08ID:2AC9Ct1n そんな10年前に終わったitaniumみたいな話されてもな。。
377デフォルトの名無しさん
2020/02/18(火) 21:42:04.43ID:tCjwrmMM 何が消滅するんだ?
378デフォルトの名無しさん
2020/02/18(火) 21:58:50.38ID:M/XUPoxw コロナで糞バカ中世ジャップランド土人どもが消滅するよ
やったね
やったね
379デフォルトの名無しさん
2020/02/20(木) 21:32:45.76ID:MYBjG5xo でも死亡率低いようだよ。
感染後に何人治癒したかも発表してほしいね。死ななかった人が治癒した人だからいずれはわかることではあるが。
感染後に何人治癒したかも発表してほしいね。死ななかった人が治癒した人だからいずれはわかることではあるが。
380デフォルトの名無しさん
2020/02/20(木) 21:50:22.46ID:ABNkvVkH JavaScriptはPHPとかいう汚物を一刻も早く滅ぼしてくれ。
言語仕様自体がゴミの癖にコーディング規約1番うるさい
のほんと腹立つ。
言語仕様自体がゴミの癖にコーディング規約1番うるさい
のほんと腹立つ。
381デフォルトの名無しさん
2020/02/20(木) 22:12:34.54ID:YUzkIp/O 言語じゃないがjsonが最後の要素にカンマあるだけで壊れるの何とかして
382デフォルトの名無しさん
2020/02/20(木) 22:22:50.95ID:9OkW2rsY383デフォルトの名無しさん
2020/02/20(木) 22:57:56.57ID:Nllb9nDe phpでクソコード書く奴はjsで同じ様にクソコード書くけどな。
384デフォルトの名無しさん
2020/02/20(木) 23:02:02.13ID:9OkW2rsY そう。一度ペチパーの畜生道に堕ちると、ほとんどの人間がダメになってしまう。
ペチパーは、クソコードを書かれる前に、打ち首の上さらし首にするしかない。
ペチパーは、クソコードを書かれる前に、打ち首の上さらし首にするしかない。
385デフォルトの名無しさん
2020/02/20(木) 23:09:21.96ID:EIb8BF36 JSONを策定した連中(IETF)は馬鹿
propertyでのidentifier(ダブルクォート無し)、末尾カンマ、コメント、
undefined(void 0) を削って設定ファイルとしても優秀に出来た仕様をぶち壊した
propertyでのidentifier(ダブルクォート無し)、末尾カンマ、コメント、
undefined(void 0) を削って設定ファイルとしても優秀に出来た仕様をぶち壊した
386デフォルトの名無しさん
2020/02/20(木) 23:18:52.95ID:EIb8BF36 言語間ネタ繋がりで
FFIのモダンな標準っていつまで経っても出てこないな
C言語ヘッダファイルが悪いとは言わないけど
FFIのモダンな標準っていつまで経っても出てこないな
C言語ヘッダファイルが悪いとは言わないけど
387デフォルトの名無しさん
2020/02/20(木) 23:30:23.69ID:rlR2t2y0 Ruby を書く人は、JS でも、きれいに書く
React でも、Ruby のinclude(mix-in)を入れた
mix-in で、親子の継承チェーンの間に入るから、
同名のメソッドが、親の前に、mix-in で見つかる
React でも、Ruby のinclude(mix-in)を入れた
mix-in で、親子の継承チェーンの間に入るから、
同名のメソッドが、親の前に、mix-in で見つかる
388387
2020/02/20(木) 23:33:18.57ID:rlR2t2y0 Ruby の、require/include の違いを学びましょうと、matz も言ってたw
389デフォルトの名無しさん
2020/02/20(木) 23:53:57.06ID:Bxr9L5YO class やら継承やら、久しくやってない(もっぱら関数・合成と委譲)ので、mix-in の記憶が曖昧なんだが、
React で mix-in なんてやることある?
少なくとも、独自コンポーネントの継承は随分昔からアンチパターンとわかってるから、やめた方がいいと思う
というか、最近の React ならほぼ全部 function でいけるぞ
React で mix-in なんてやることある?
少なくとも、独自コンポーネントの継承は随分昔からアンチパターンとわかってるから、やめた方がいいと思う
というか、最近の React ならほぼ全部 function でいけるぞ
390デフォルトの名無しさん
2020/02/21(金) 02:13:02.66ID:by8wvtRn >>385
JSON5使えよ
JSON5使えよ
391387
2020/02/21(金) 03:09:32.20ID:2TMdipPT ヘルパーメソッドなど、汎用的なモジュールを作って、子クラスでinclude(mix-in)すると、
メソッドの探索チェーンが「子 → mix-in → 親」となるので、
同名のメソッドが、親よりも先に、mix-inで見つかる
便利なインターフェースみたいなもの
メソッドの探索チェーンが「子 → mix-in → 親」となるので、
同名のメソッドが、親よりも先に、mix-inで見つかる
便利なインターフェースみたいなもの
392デフォルトの名無しさん
2020/02/21(金) 08:29:33.49ID:gYJx2Nw8 そういうのはロギングとか、本筋の処理と関係ない部分でやるならいいんだけどね。
393デフォルトの名無しさん
2020/02/21(金) 09:15:11.85ID:fb5RhRNc 継承より委譲と言われるようになって久しいが、まだこんな老害が生きていたのか
394デフォルトの名無しさん
2020/02/21(金) 09:20:51.62ID:x3ENt9Ss >>3
エリ臭ーの説明が臭逸wwwww
エリ臭ーの説明が臭逸wwwww
395デフォルトの名無しさん
2020/02/21(金) 15:22:06.78ID:LIVBire/ >>3
Goもっとなんかないの?
Goもっとなんかないの?
396デフォルトの名無しさん
2020/02/21(金) 17:47:40.90ID:Q29ljCA8397デフォルトの名無しさん
2020/02/21(金) 18:13:02.48ID:Ih2AT/wR 高級言語がC言語を呼び出すのは古い
C言語が高級言語を呼び出すのがモダン
C言語が高級言語を呼び出すのがモダン
398デフォルトの名無しさん
2020/02/21(金) 19:38:24.80ID:rQPJsZ5x Cの書きにくさと高級言語の遅さを兼ね備える
のか…(困惑)
のか…(困惑)
399デフォルトの名無しさん
2020/02/21(金) 22:00:41.03ID:yQU53qlc Goの良くない点
入門者への分かりやすさを重視して設計したはずなのに、配列のスライスが上端を
含まない半開区間であること。閉区間にすべきだった。
入門者への分かりやすさを重視して設計したはずなのに、配列のスライスが上端を
含まない半開区間であること。閉区間にすべきだった。
400デフォルトの名無しさん
2020/02/21(金) 22:31:21.43ID:qBSn2WyF 配列のインデックスが0ベースならスライスは普通半開だけど
含んでる言語はスライス用途以外に同じ記法を用いる特殊な事情があるやつ
含んでる言語はスライス用途以外に同じ記法を用いる特殊な事情があるやつ
401デフォルトの名無しさん
2020/02/21(金) 22:50:10.70ID:SL2p+l+/402デフォルトの名無しさん
2020/02/21(金) 22:51:09.76ID:gYJx2Nw8 半開区間で表すのが常識になれば入門者が迷うこともなくなるよ。実際そうなりつつある。
403デフォルトの名無しさん
2020/02/21(金) 23:13:55.94ID:SL2p+l+/ >>399
>入門者への分かりやすさを重視して設計したはず
言語入門者はともかく、プログラミング入門者を対象とはしてないよ
楽しさや設計の美しさより実務を最優先にした言語
公式にも以下のようにある
> Go was designed to address the problems faced in software development at Google
>入門者への分かりやすさを重視して設計したはず
言語入門者はともかく、プログラミング入門者を対象とはしてないよ
楽しさや設計の美しさより実務を最優先にした言語
公式にも以下のようにある
> Go was designed to address the problems faced in software development at Google
404デフォルトの名無しさん
2020/02/21(金) 23:18:00.85ID:yQU53qlc >>400
添字が0始まりだから半開区間にしなければならない理由なんてないだろ。
添字が0始まりでも閉区間のF#やPowerShellの方が入門者にとっても
それ以外の人にとっても直感的で分かりやすい。
添字が0始まりだから半開区間にしなければならない理由なんてないだろ。
添字が0始まりでも閉区間のF#やPowerShellの方が入門者にとっても
それ以外の人にとっても直感的で分かりやすい。
405デフォルトの名無しさん
2020/02/21(金) 23:25:51.94ID:qBSn2WyF >>404
だからそれらの言語のは配列のスライス専用の記法じゃないから
let list = [ 1 .. 10 ]
みたいな場面でも使われる
こういう時にはたしかに直感的で便利だけどスライス用途ではむしろ使い難い
RubyやPerlも同じ
だからそれらの言語のは配列のスライス専用の記法じゃないから
let list = [ 1 .. 10 ]
みたいな場面でも使われる
こういう時にはたしかに直感的で便利だけどスライス用途ではむしろ使い難い
RubyやPerlも同じ
406デフォルトの名無しさん
2020/02/22(土) 00:02:04.72ID:iumKj4t4407デフォルトの名無しさん
2020/02/22(土) 00:12:16.03ID:3tA6OTRM おまえの個人的な決めつけで閉区間のがいいとか言われても困るわ。
408デフォルトの名無しさん
2020/02/22(土) 00:38:42.23ID:4ukU5GSv 開閉と区間とか知らない言葉出てきた
モナドばりの失笑もんだ
モナドばりの失笑もんだ
409デフォルトの名無しさん
2020/02/22(土) 01:10:25.80ID:nfgptzfk https://tour.golang.org/moretypes/7
The following expression creates a slice which includes elements 1 through 3 of a:
a[1:4]
`1 through 3 of a` == a[1:4]
さすがGoogle謹製わかりやすい!!!
The following expression creates a slice which includes elements 1 through 3 of a:
a[1:4]
`1 through 3 of a` == a[1:4]
さすがGoogle謹製わかりやすい!!!
410デフォルトの名無しさん
2020/02/22(土) 01:52:17.36ID:dIBglAMb Rust
for x in 1..4 { println!("{}", x); }
> 1 2 3
Java
for(int i : Arrays.asList(0,1,2,3,4).subList(1,4)){ System.out.println(i); }
> 1 2 3
IntStream.range(1,4).forEach(System.out::println);
> 1 2 3
C#
foreach(var i in new int[]{0,1,2,3,4}[1..4]){Console.WriteLine(i);}
> 1 2 3
for x in 1..4 { println!("{}", x); }
> 1 2 3
Java
for(int i : Arrays.asList(0,1,2,3,4).subList(1,4)){ System.out.println(i); }
> 1 2 3
IntStream.range(1,4).forEach(System.out::println);
> 1 2 3
C#
foreach(var i in new int[]{0,1,2,3,4}[1..4]){Console.WriteLine(i);}
> 1 2 3
411デフォルトの名無しさん
2020/02/22(土) 02:12:12.39ID:nfgptzfk Rust, Ruby, Swiftあたりは選べるよ
412デフォルトの名無しさん
2020/02/22(土) 09:34:25.17ID:swIKwGW1 (選べなくて)いいです
413デフォルトの名無しさん
2020/02/22(土) 09:56:32.14ID:3tA6OTRM 閉区間だったり1始まりが好きな奴はjulia使ってればいいんじゃね?そこから出なくていいよ。
414デフォルトの名無しさん
2020/02/22(土) 10:01:32.18ID:vDAf0o9K 閉区間だと[i:i-1]で空集合にするのはどうなんだ
415デフォルトの名無しさん
2020/02/22(土) 12:10:17.27ID:BfUm9Jvt @ & $ ^ * ` -> => などを
使ってる言語は俺の中でゴミ確定
うんこをOSS公開しなくていいから
使ってる言語は俺の中でゴミ確定
うんこをOSS公開しなくていいから
416デフォルトの名無しさん
2020/02/22(土) 12:13:19.15ID:ArzKKN+q 配列クラス自体は言語ではなくライブラリだから
いくら言語を統一してもライブラリを何通りも作るのは合法
いくら言語を統一してもライブラリを何通りも作るのは合法
417デフォルトの名無しさん
2020/02/22(土) 12:13:47.33ID:swIKwGW1 >>415
ぴーーーーーーーーえいーーーーーーちーーーーーーーーーーーーピューーーーーーーーーーーーーーーーーーー
ぴーーーーーーーーえいーーーーーーちーーーーーーーーーーーーピューーーーーーーーーーーーーーーーーーー
418デフォルトの名無しさん
2020/02/22(土) 12:28:58.73ID:d8Cq9jZ5419デフォルトの名無しさん
2020/02/22(土) 13:02:12.00ID:WVugcdbO つか、*を使わない言語なんてAPLくらい?
420デフォルトの名無しさん
2020/02/22(土) 14:08:59.76ID:qQaAG+8d Ruby のrange では、
p ( 1 .. 3 ).to_a #=> [1, 2, 3]
p ( 1 ... 3 ).to_a #=> [1, 2]
オプションで切り替えられるのも良いかも
( 1 .. 3, true )
p ( 1 .. 3 ).to_a #=> [1, 2, 3]
p ( 1 ... 3 ).to_a #=> [1, 2]
オプションで切り替えられるのも良いかも
( 1 .. 3, true )
421デフォルトの名無しさん
2020/02/22(土) 14:36:44.32ID:9VOnc80r422デフォルトの名無しさん
2020/02/22(土) 14:57:36.74ID:ArzKKN+q オプションよりキーワードを使おう
first=1, overrun=3
zeroth=1, last=3
first=1, overrun=3
zeroth=1, last=3
423デフォルトの名無しさん
2020/02/22(土) 16:40:01.88ID:dIBglAMb Swiftの半開区間/閉区間の表現を使うとして
(10 ..< 20) → (10 <= x < 20) 要素数: 20-10 = 10
(10 ... 19) → (10 <= x <= 19) 要素数: 19-10+1 = 10
2分割を考える
整数区間の表現や分割は互いに代用可能
(10 ..< 20) → (10 ..< 15) (15 ..< 20) 要素数: 5, 5
(10 ... 19) → (10 ... 14) (15 ... 19) 要素数: 5, 5
実数区間は代用不可能 ※精度の仮定無しに <= 1.9999.. は表現不可
(1.0 ..< 2.0) → (1.0 ..< 1.5) (1.5 ..< 2.0)
(1.0 ... 2.0) → (1.0 ... 1.5) (1.5 ... 2.0) ※境界点のhitTestは両方に該当
閉区間では整数区間と実数区間で考え方が異なる
また、固有の値の数が多くなりがち (10...14) (15...19) → 10,14,15,19
両方あるべきとは思うけど、半開区間の方がロジックが簡潔になることが多い
(10 ..< 20) → (10 <= x < 20) 要素数: 20-10 = 10
(10 ... 19) → (10 <= x <= 19) 要素数: 19-10+1 = 10
2分割を考える
整数区間の表現や分割は互いに代用可能
(10 ..< 20) → (10 ..< 15) (15 ..< 20) 要素数: 5, 5
(10 ... 19) → (10 ... 14) (15 ... 19) 要素数: 5, 5
実数区間は代用不可能 ※精度の仮定無しに <= 1.9999.. は表現不可
(1.0 ..< 2.0) → (1.0 ..< 1.5) (1.5 ..< 2.0)
(1.0 ... 2.0) → (1.0 ... 1.5) (1.5 ... 2.0) ※境界点のhitTestは両方に該当
閉区間では整数区間と実数区間で考え方が異なる
また、固有の値の数が多くなりがち (10...14) (15...19) → 10,14,15,19
両方あるべきとは思うけど、半開区間の方がロジックが簡潔になることが多い
424デフォルトの名無しさん
2020/02/22(土) 16:49:53.81ID:ArzKKN+q スカラーと行列では交換法則がー
↓
交換法則を使ったら不正解とする方がロジックが簡潔みたいな風潮
↓
交換法則を使ったら不正解とする方がロジックが簡潔みたいな風潮
425デフォルトの名無しさん
2020/02/22(土) 19:06:26.05ID:iumKj4t4 >>409
a[1:4]はa[1], a[2], a[3], a[4]にしか見えない。見た目が左右対称だから機能的にも
左右対称な閉区間を表すのが自然。半開区間を表したければ、見た目にも左右非対称な
a[1:<4]にすべきで、1文字増えるだから不満はないだろ。
a[1], a[2], a[3]を指定したいときに、3に1を足して4なんて煩わしいことをするのは
馬鹿げているから、たいていの場合は閉区間が適していて、開区間が適しているのは
>>423のような特殊な場合だけ。
半開区間は「赤上げて、白下げないで青下げて」みたいなひねくれた書き方だから、
閉区間の方が分かりやすい場合にも半開区間を強要するのは、書き間違えやすくバグの
元。お前らも半開区間の言語で、a[1], a[2], a[3]のつもりでa[1:3]と書き間違えた
ことが一度はあるだろ。いや、二度、三度どころかもっとあるはず。白状しろw
a[1:4]はa[1], a[2], a[3], a[4]にしか見えない。見た目が左右対称だから機能的にも
左右対称な閉区間を表すのが自然。半開区間を表したければ、見た目にも左右非対称な
a[1:<4]にすべきで、1文字増えるだから不満はないだろ。
a[1], a[2], a[3]を指定したいときに、3に1を足して4なんて煩わしいことをするのは
馬鹿げているから、たいていの場合は閉区間が適していて、開区間が適しているのは
>>423のような特殊な場合だけ。
半開区間は「赤上げて、白下げないで青下げて」みたいなひねくれた書き方だから、
閉区間の方が分かりやすい場合にも半開区間を強要するのは、書き間違えやすくバグの
元。お前らも半開区間の言語で、a[1], a[2], a[3]のつもりでa[1:3]と書き間違えた
ことが一度はあるだろ。いや、二度、三度どころかもっとあるはず。白状しろw
426デフォルトの名無しさん
2020/02/22(土) 19:15:16.42ID:WVugcdbO 「俺の思い込みに合わせろ」
427デフォルトの名無しさん
2020/02/22(土) 20:24:36.79ID:6IDagORl --lua
print (1 .. 4)
14
print (1 .. 4)
14
428デフォルトの名無しさん
2020/02/22(土) 20:29:39.10ID:iumKj4t4 >>419
*と言えば、Goの巨大数パッケージmath/bigは異様に使いにくいな。
階乗関数の整数版factと巨大整数版Factを書いてみると、C#ではfactのintを
BigIntegerに置換するだけでFactになる。アルゴリズムが本質的に同じときに
同じ書き方をできるのは、分かりやすくて良い。
https://www.ideone.com/T8WbLX
ところが、Goではfactと比べFactには余分なものがたくさん増えている。
*big.Intなんてポインタが現れるし、整数からの変換にbig.NewInt関数が必要だし、
四則演算子を使えず、掛け算は*ではなくMul関数を呼ばないといけない。
こんな実装の裏方を晒して低レベルな書き方をさせるのは、煩雑でバグの元。
C#では許されるp *= n--をGoが許さないのは、評価順序の勘違いによるバグを
防ぐためだろうが、他方で半開区間や巨大数パッケージでバグの温床を与えているのは
設計方針がちぐはぐすぎる
https://www.ideone.com/9ndenp
*と言えば、Goの巨大数パッケージmath/bigは異様に使いにくいな。
階乗関数の整数版factと巨大整数版Factを書いてみると、C#ではfactのintを
BigIntegerに置換するだけでFactになる。アルゴリズムが本質的に同じときに
同じ書き方をできるのは、分かりやすくて良い。
https://www.ideone.com/T8WbLX
ところが、Goではfactと比べFactには余分なものがたくさん増えている。
*big.Intなんてポインタが現れるし、整数からの変換にbig.NewInt関数が必要だし、
四則演算子を使えず、掛け算は*ではなくMul関数を呼ばないといけない。
こんな実装の裏方を晒して低レベルな書き方をさせるのは、煩雑でバグの元。
C#では許されるp *= n--をGoが許さないのは、評価順序の勘違いによるバグを
防ぐためだろうが、他方で半開区間や巨大数パッケージでバグの温床を与えているのは
設計方針がちぐはぐすぎる
https://www.ideone.com/9ndenp
429デフォルトの名無しさん
2020/02/22(土) 21:15:42.06ID:dIBglAMb >>425
> 3に1を足して4なんて煩わしいこと
off位置からlen個取りたい → off..<(off+len)
"key=value"からkeyを切り出したい → 0..<(=の位置)
閉区間では1を引くなんて煩わしいことが必要とも言える
使い易さの例がマジックナンバーなのはナンセンスでは?
非対称な構文にすべきという点には異論無いけど
それ以外の部分は、君がそう思っているという以外に根拠が無いように見える
> 3に1を足して4なんて煩わしいこと
off位置からlen個取りたい → off..<(off+len)
"key=value"からkeyを切り出したい → 0..<(=の位置)
閉区間では1を引くなんて煩わしいことが必要とも言える
使い易さの例がマジックナンバーなのはナンセンスでは?
非対称な構文にすべきという点には異論無いけど
それ以外の部分は、君がそう思っているという以外に根拠が無いように見える
430デフォルトの名無しさん
2020/02/22(土) 22:31:04.26ID:iumKj4t4 >>429
範囲をマジックナンバーで指定したい場面は多い。
閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。
例えば、2月22日から5日間は、22 + 5 - 1 = 26だから26日までと理解する。
変数で書く場合も、off..<(off + len)よりoff..(off + len - 1)の方が最小値と
最大値が両方明示されていて分かりやすいと思うが、人によって違うだろうし、
半開区間の方が4文字短いので、好みに応じて選べるようにするのが良い。
offを二度書かずに済む構文off+..(len - 1)とoff+..<lenがあるともっと良い。
範囲をマジックナンバーで指定したい場面は多い。
閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。
例えば、2月22日から5日間は、22 + 5 - 1 = 26だから26日までと理解する。
変数で書く場合も、off..<(off + len)よりoff..(off + len - 1)の方が最小値と
最大値が両方明示されていて分かりやすいと思うが、人によって違うだろうし、
半開区間の方が4文字短いので、好みに応じて選べるようにするのが良い。
offを二度書かずに済む構文off+..(len - 1)とoff+..<lenがあるともっと良い。
431デフォルトの名無しさん
2020/02/22(土) 22:34:01.56ID:WVugcdbO >閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。
他の人は半開区間もすぐに染みつくから問題ないのよ。
他の人は半開区間もすぐに染みつくから問題ないのよ。
432デフォルトの名無しさん
2020/02/22(土) 23:19:17.03ID:40Zqn9UM >>399
無いなら作れば良い。
そう。Haskellならね。
組込のindexえんざんし(!!)だとこう
[1..3]!!0
>1
んで、1で始まるindex演算子が欲しければ作る。
(x:_) !!! 1 = x
(_:xs) !!! n = xs !!! (n - 1)
[1..3]!!!1
>1
無いなら作れば良い。
そう。Haskellならね。
組込のindexえんざんし(!!)だとこう
[1..3]!!0
>1
んで、1で始まるindex演算子が欲しければ作る。
(x:_) !!! 1 = x
(_:xs) !!! n = xs !!! (n - 1)
[1..3]!!!1
>1
433デフォルトの名無しさん
2020/02/22(土) 23:41:19.49ID:swIKwGW1 な、なんだってー!!!!
434デフォルトの名無しさん
2020/02/22(土) 23:46:03.57ID:3tA6OTRM そんなとこでつまづく様じゃどのみちまともにプログラムできる様にはならんだろ
435デフォルトの名無しさん
2020/02/22(土) 23:49:32.86ID:zVGqPuAA >>432
今のところこいつが一番頭悪そう
今のところこいつが一番頭悪そう
436デフォルトの名無しさん
2020/02/22(土) 23:54:59.87ID:dIBglAMb >>430
ではその期間にログインした人をログイン日時から絞り込むとする
2月22日 <= ログイン日時 <= 2月26日
仕様の具体例として上記を書くのは不具合のリスクがある
2月22日 <= 日単位切り捨て(ログイン日時) <= 2月26日
のように精度を揃える切り捨てを明示するか
2月22日0時0分 <= ログイン日時 < (2月26日0時0分 + 1日間)
のように半開区間にすべき
このような操作が必要なのは、2月22日から2月26日という表現は
実際には「2月22日から2月26日終日」という暗黙の非対称性があるため
ではその期間にログインした人をログイン日時から絞り込むとする
2月22日 <= ログイン日時 <= 2月26日
仕様の具体例として上記を書くのは不具合のリスクがある
2月22日 <= 日単位切り捨て(ログイン日時) <= 2月26日
のように精度を揃える切り捨てを明示するか
2月22日0時0分 <= ログイン日時 < (2月26日0時0分 + 1日間)
のように半開区間にすべき
このような操作が必要なのは、2月22日から2月26日という表現は
実際には「2月22日から2月26日終日」という暗黙の非対称性があるため
437デフォルトの名無しさん
2020/02/22(土) 23:55:16.88ID:iumKj4t4 >>432
Haskellでは範囲を指定してリストを作るときの範囲は閉区間だな。
だから、スライス風演算子!..!を定義すれば、
Prelude> xs !..! ys = map (xs !!) ys
Prelude> [1..10] !..! [1..4]
[2, 3, 4, 5]
となる。
Haskellは言語仕様は難解で有名だが、標準インストールでREPLが提供され、
ソースファイルをいちいち作らずにいろいろ試せて便利だな。C#とF#も
コンパイラ言語だがREPLがある。GoにもREPLが欲しい。Goreという
REPLもどきを作った人はいるが、もどきなので遅くて使い物にならない。
純正で本物のREPLを提供してもらいたい。
Haskellでは範囲を指定してリストを作るときの範囲は閉区間だな。
だから、スライス風演算子!..!を定義すれば、
Prelude> xs !..! ys = map (xs !!) ys
Prelude> [1..10] !..! [1..4]
[2, 3, 4, 5]
となる。
Haskellは言語仕様は難解で有名だが、標準インストールでREPLが提供され、
ソースファイルをいちいち作らずにいろいろ試せて便利だな。C#とF#も
コンパイラ言語だがREPLがある。GoにもREPLが欲しい。Goreという
REPLもどきを作った人はいるが、もどきなので遅くて使い物にならない。
純正で本物のREPLを提供してもらいたい。
438デフォルトの名無しさん
2020/02/22(土) 23:57:09.96ID:dIBglAMb >>430
一方で時間は「昼休みは12:00〜13:00の1時間」のような半開区間の表現と
12:00〜12:59のような閉区間の表現がある (秒以下もあるので中途半端だが)
ググった限りでは前者の方が一般的に見える
行程表などでの分割では 12:00〜12:30, 12:30〜13:00 のようになる
これは君が「特殊な場合」と言ったものの実例
整数区間の日付と実数区間の時刻
一方で時間は「昼休みは12:00〜13:00の1時間」のような半開区間の表現と
12:00〜12:59のような閉区間の表現がある (秒以下もあるので中途半端だが)
ググった限りでは前者の方が一般的に見える
行程表などでの分割では 12:00〜12:30, 12:30〜13:00 のようになる
これは君が「特殊な場合」と言ったものの実例
整数区間の日付と実数区間の時刻
439デフォルトの名無しさん
2020/02/23(日) 00:43:44.71ID:ngt5amF4 配列が1から始まるウンコさに比べたら
こんなもん誤差ですよ
こんなもん誤差ですよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
- 犬って顔くっつけて寝たがるよな
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- ( ´・ω・` )もう寝るよ
- 神 vs 無 vs タイムマシン vs うんちっち
