[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/13 18:55 / Filesize : 225 KB / Number-of Response : 1044
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語18 Go Rust Elixir Kotlin TypeScript



1 名前:デフォルトの名無しさん [2019/10/01(火) 02:58:03.93 ID:aEwUIB6s.net]
スレタイ以外の言語もok

前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/

354 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:18:48 ID:aiv1Gn1Y.net]
アイデア勝負から体力勝負ってか

355 名前:◆QZaw55cn4c mailto:sage [2020/02/01(土) 17:12:27 ID:EspH/Y2K.net]
>>339
いい言葉ですね!
誰がいったのですか?

356 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:13:44 ID:caubOhav.net]
リーナス・トーバルズや

357 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:35:34 ID:iMzFL2if.net]
あまねく型無し糞言語池沼がすべからく滅びますように

358 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 17:39:09 ID:9BMLg08w.net]
まだ滅びてない型無し言語って何が残ってたかな

359 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 18:06:53.35 ID:9qdhvoJU.net]
アセンブラ

360 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:28:55.56 ID:7b/FZYuN.net]
諦めたらそこでギブアップやからな!

361 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:33:23 ID:vTjBAXNr.net]
結局書いてて楽

362 名前:オい言語と保守しやすい言語って違うってのが
rubyが根本から間違ってるところだろ。
[]
[ここ壊れてます]



363 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 00:36:53 ID:N9qFFSK9.net]
あれが楽しいとかゲエジだら
型無し糞言語は補完も頭悪いし、書いてて全く楽しくない
おまけに保守性も最悪ときたら、ほんとにほんとにゴミでしかないゴミ
今すぐ回線切って首吊って死ねや

364 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 06:02:43 ID:DhujQgFD.net]
Rubyが型無しとか頭わいてんのか

365 名前:◆QZaw55cn4c mailto:sage [2020/02/02(日) 06:59:23 ID:9jRHEnns.net]
>>352
型無しでもいいけれども、宣言なしというのはいただけない
var a
とか VB/VBA 的に option explicit, dim a
とかは、そろそろ導入されるべきでしょう

366 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 09:21:26 ID:oSeNT+fp.net]
Zigって次世代っぽいよな

367 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 10:15:11.33 ID:Ng7YaIlp.net]
型無し言語とか
rubyが保守しにくいとかw

相変わらず低スキル&エアプの巣窟やなココ

368 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 10:55:21 ID:N9qFFSK9.net]
>>356



回線切って首吊って死ねや

369 名前:デフォルトの名無しさん [2020/02/02(日) 15:24:04 ID:9xJm9DGW.net]
>>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  (* 要素の型が混在するリストは誤り *)

(長いので続く)

370 名前:デフォルトの名無しさん [2020/02/02(日) 15:24:32 ID:9xJm9DGW.net]
(>>358の続き)

Python(動的型付け):
  >>> (1, 2, 3)
  (1, 2, 3)  # タプル型(要素は整数型)

  >>> (1, True, "Foo")
  (1, True, 'Foo')  # タプル型(要素の型は混在)

  >>> [1, 2, 3]
  [1, 2, 3]  # リスト型リスト型(要素は整数型)

  >>> [1, True]
  [1, True]  # リスト型(要素の型は混在)

371 名前:デフォルトの名無しさん mailto:sage [2020/02/02(日) 15:27:54 ID:sFvJQflI.net]
未だにそんないにしえの言語持ち出してホルホルしてる型無し糞言語じいさん・・・

372 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 14:34:28 ID:a6hn8dag.net]
ロートルは氏ね



373 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 20:57:41 ID:vVtjhTfX.net]
実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
https://www.atmarkit.co.jp/ait/articles/2002/10/news038.html

374 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 21:35:25.56 ID:Dl8kxxCi.net]
>>362
>Rustのナイトリーチャネルで、非同期プログラミング機能が強化された不安定版が入手できるようになった
>Discordはナイトリーリリースを導入し、問題が発生した際にはRustチームと協力して対処した

頑張ったなw

375 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 15:20:00.59 ID:J1bovO5o.net]
まあガベコレに手を入れるくらいならc++, rustって選択にはなるわな。

376 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 15:23:11.73 ID:YlxUawVa.net]
ガベコレって呼び方ダサっ

377 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 15:26:47.98 ID:HP9UoaRz.net]
ファイファンのことFFって呼んでそう

378 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 23:36:38 ID:XID0eZBS.net]
ドラゴボ、アダビデ

379 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 01:00:22 ID:yLDkBP53.net]
マナル

380 名前:デフォルトの名無しさん [2020/02/16(日) 16:39:43.39 ID:e+hZCGM4.net]
ガベーコレ

381 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:10:35.02 ID:w0IbR+6u.net]
呼び方とかクソ議論だと盛り上がるのな

382 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17: ]
[ここ壊れてます]



383 名前:24:03.66 ID:U3PjlFnp.net mailto: ガペ []
[ここ壊れてます]

384 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 00:05:13.18 ID:h15Bw/Qz.net]
Rustの時代来て欲しいけどやっぱ難しいんだよね

385 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 00:09:41.30 ID:M/XUPoxw.net]
型無し糞言語は肉片一つ残さず消え去って欲しい

386 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 01:56:31 ID:Az88Dn7G.net]
動的型付け定期

387 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 08:00:03 ID:KHr4ndHy.net]
コンパイラがメチャ賢くなってあらゆるプログラムが最適化で削除されるようになったら消滅する議論

388 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 09:26:02 ID:2AC9Ct1n.net]
そんな10年前に終わったitaniumみたいな話されてもな。。

389 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 21:42:04 ID:tCjwrmMM.net]
何が消滅するんだ?

390 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 21:58:50.38 ID:M/XUPoxw.net]
コロナで糞バカ中世ジャップランド土人どもが消滅するよ
やったね

391 名前:デフォルトの名無しさん [2020/02/20(木) 21:32:45.76 ID:MYBjG5xo.net]
でも死亡率低いようだよ。
感染後に何人治癒したかも発表してほしいね。死ななかった人が治癒した人だからいずれはわかることではあるが。

392 名前:デフォルトの名無しさん [2020/02/20(木) 21:50:22.46 ID:ABNkvVkH.net]
JavaScriptはPHPとかいう汚物を一刻も早く滅ぼしてくれ。
言語仕様自体がゴミの癖にコーディング規約1番うるさい
のほんと腹立つ。



393 名前:デフォルトの名無しさん mailto:sage [2020/02/20(木) 22:12:34.54 ID:YUzkIp/O.net]
言語じゃないがjsonが最後の要素にカンマあるだけで壊れるの何とかして

394 名前:デフォルトの名無しさん mailto:sage [2020/02/20(木) 22:22:50.95 ID:9OkW2rsY.net]
>>380
型無し糞言語からJavaの悪いところだけを輸入して、ただの糞言語になった
便器ブラシことゴミ屑PHP(障害者手帳持ち)の悪口を言うな

395 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 22:57:56 ID:Nllb9nDe.net]
phpでクソコード書く奴はjsで同じ様にクソコード書くけどな。

396 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 23:02:02 ID:9OkW2rsY.net]
そう。一度ペチパーの畜生道に堕ちると、ほとんどの人間がダメになってしまう。
ペチパーは、クソコードを書かれる前に、打ち首の上さらし首にするしかない。

397 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 23:09:21 ID:EIb8BF36.net]
JSONを策定した連中(IETF)は馬鹿

propertyでのidentifier(ダブルクォート無し)、末尾カンマ、コメント、
undefined(void 0) を削って設定ファイルとしても優秀に出来た仕様をぶち壊した

398 名前:デフォルトの名無しさん mailto:sage [2020/02/20(木) 23:18:52.95 ID:EIb8BF36.net]
言語間ネタ繋がりで
FFIのモダンな標準っていつまで経っても出てこないな
C言語ヘッダファイルが悪いとは言わないけど

399 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 23:30:23 ID:rlR2t2y0.net]
Ruby を書く人は、JS でも、きれいに書く

React でも、Ruby のinclude(mix-in)を入れた

mix-in で、親子の継承チェーンの間に入るから、
同名のメソッドが、親の前に、mix-in で見つかる

400 名前:387 mailto:sage [2020/02/20(Thu) 23:33:18 ID:rlR2t2y0.net]
Ruby の、require/include の違いを学びましょうと、matz も言ってたw

401 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 23:53:57 ID:Bxr9L5YO.net]
class やら継承やら、久しくやってない(もっぱら関数・合成と委譲)ので、mix-in の記憶が曖昧なんだが、
React で mix-in なんてやることある?

少なくとも、独自コンポーネントの継承は随分昔からアンチパターンとわかってるから、やめた方がいいと思う
というか、最近の React ならほぼ全部 function でいけるぞ

402 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 02:13:02 ID:by8wvtRn.net]
>>385
JSON5使えよ



403 名前:387 mailto:sage [2020/02/21(金) 03:09:32.20 ID:2TMdipPT.net]
ヘルパーメソッドなど、汎用的なモジュールを作って、子クラスでinclude(mix-in)すると、

メソッドの探索チェーンが「子 → mix-in → 親」となるので、
同名のメソッドが、親よりも先に、mix-inで見つかる

便利なインターフェースみたいなもの

404 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 08:29:33 ID:gYJx2Nw8.net]
そういうのはロギングとか、本筋の処理と関係ない部分でやるならいいんだけどね。

405 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 09:15:11.85 ID:fb5RhRNc.net]
継承より委譲と言われるようになって久しいが、まだこんな老害が生きていたのか

406 名前:デフォルトの名無しさん [2020/02/21(金) 09:20:51.62 ID:x3ENt9Ss.net]
>>3
エリ臭ーの説明が臭逸wwwww

407 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 15:22:06.78 ID:LIVBire/.net]
>>3
Goもっとなんかないの?

408 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 17:47:40.90 ID:Q29ljCA8.net]
>>386
どうせc呼ぶくらいしか需要ないんだしそれでいいだろ。
他の言語呼ぶくらいならプロセス切り離してシステム関数つかったらええわ。

409 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 18:13:02 ID:Ih2AT/wR.net]
高級言語がC言語を呼び出すのは古い
C言語が高級言語を呼び出すのがモダン

410 名前:デフォルトの名無しさん [2020/02/21(金) 19:38:24.80 ID:rQPJsZ5x.net]
Cの書きにくさと高級言語の遅さを兼ね備える
のか…(困惑)

411 名前:デフォルトの名無しさん [2020/02/21(金) 22:00:41.03 ID:yQU53qlc.net]
Goの良くない点

入門者への分かりやすさを重視して設計したはずなのに、配列のスライスが上端を
含まない半開区間であること。閉区間にすべきだった。

412 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 22:31:21 ID:qBSn2WyF.net]
配列のインデックスが0ベースならスライスは普通半開だけど
含んでる言語はスライス用途以外に同じ記法を用いる特殊な事情があるやつ



413 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 22:50:10.70 ID:SL2p+l+/.net]
>>390
標準化あるいはデファクト化が重要なんすよ

自社ソフト内で使う分にはいいけど
公開APIでJSON5を返す選択は厳しい

414 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 22:51:09.76 ID:gYJx2Nw8.net]
半開区間で表すのが常識になれば入門者が迷うこともなくなるよ。実際そうなりつつある。

415 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 23:13:55.94 ID:SL2p+l+/.net]
>>399
>入門者への分かりやすさを重視して設計したはず

言語入門者はともかく、プログラミング入門者を対象とはしてないよ
楽しさや設計の美しさより実務を最優先にした言語

公式にも以下のようにある
> Go was designed to address the problems faced in software development at Google

416 名前:デフォルトの名無しさん [2020/02/21(金) 23:18:00.85 ID:yQU53qlc.net]
>>400
添字が0始まりだから半開区間にしなければならない理由なんてないだろ。
添字が0始まりでも閉区間のF#やPowerShellの方が入門者にとっても
それ以外の人にとっても直感的で分かりやすい。

417 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 23:25:51.94 ID:qBSn2WyF.net]
>>404
だからそれらの言語のは配列のスライス専用の記法じゃないから

let list = [ 1 .. 10 ]

みたいな場面でも使われる
こういう時にはたしかに直感的で便利だけどスライス用途ではむしろ使い難い
RubyやPerlも同じ

418 名前:デフォルトの名無しさん [2020/02/22(土) 00:02:04.72 ID:iumKj4t4.net]
>>405
スライスでも閉区間の方がはるかに使いやすい。Pythonみたいな奇形言語の真似を
するのはやめてもらいたい。

419 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 00:12:16 ID:3tA6OTRM.net]
おまえの個人的な決めつけで閉区間のがいいとか言われても困るわ。

420 名前:デフォルトの名無しさん [2020/02/22(土) 00:38:42.23 ID:4ukU5GSv.net]
開閉と区間とか知らない言葉

421 名前:出てきた
モナドばりの失笑もんだ
[]
[ここ壊れてます]

422 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 01:10:25 ID:nfgptzfk.net]
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謹製わかりやすい!!!



423 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 01:52:17.36 ID:dIBglAMb.net]
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

424 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 02:12:12.39 ID:nfgptzfk.net]
Rust, Ruby, Swiftあたりは選べるよ

425 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 09:34:25.17 ID:swIKwGW1.net]
(選べなくて)いいです

426 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 09:56:32 ID:3tA6OTRM.net]
閉区間だったり1始まりが好きな奴はjulia使ってればいいんじゃね?そこから出なくていいよ。

427 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 10:01:32 ID:vDAf0o9K.net]
閉区間だと[i:i-1]で空集合にするのはどうなんだ

428 名前:デフォルトの名無しさん [2020/02/22(土) 12:10:17.27 ID:BfUm9Jvt.net]
@ & $ ^ * ` -> => などを
使ってる言語は俺の中でゴミ確定


うんこをOSS公開しなくていいから

429 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 12:13:19.15 ID:ArzKKN+q.net]
配列クラス自体は言語ではなくライブラリだから
いくら言語を統一してもライブラリを何通りも作るのは合法

430 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 12:13:47.33 ID:swIKwGW1.net]
>>415
ぴーーーーーーーーえいーーーーーーちーーーーーーーーーーーーピューーーーーーーーーーーーーーーーーーー

431 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 12:28:58 ID:d8Cq9jZ5.net]
>>415
C言語アウトか
厳しい

432 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:02:12.00 ID:WVugcdbO.net]
つか、*を使わない言語なんてAPLくらい?



433 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 14:08:59.76 ID:qQaAG+8d.net]
Ruby のrange では、
p ( 1 .. 3 ).to_a #=> [1, 2, 3]
p ( 1 ... 3 ).to_a #=> [1, 2]

オプションで切り替えられるのも良いかも
( 1 .. 3, true )

434 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 14:36:44 ID:9VOnc80r.net]
>>408
たかが高校数学にすら出てくる用語だぞ

開区間,閉区間の意味と関連する話題
https://mathtrain.jp/kukan

435 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 14:57:36 ID:ArzKKN+q.net]
オプションよりキーワードを使おう
first=1, overrun=3
zeroth=1, last=3

436 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:40:01 ID:dIBglAMb.net]
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

両方あるべきとは思うけど、半開区間の方がロジックが簡潔になることが多い

437 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:49:53.81 ID:ArzKKN+q.net]
スカラーと行列では交換法則がー

交換法則を使ったら不正解とする方がロジックが簡潔みたいな風潮

438 名前:デフォルトの名無しさん [2020/02/22(土) 19:06:26 ID:iumKj4t4.net]
>>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

439 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 19:15:16.42 ID:WVugcdbO.net]
「俺の思い込みに合わせろ」

440 名前:デフォルトの名無しさん [2020/02/22(土) 20:24:36 ID:6IDagORl.net]
--lua
print (1 .. 4)

14

441 名前:デフォルトの名無しさん [2020/02/22(土) 20:29:39 ID:iumKj4t4.net]
>>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

442 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:15:42 ID:dIBglAMb.net]
>>425
> 3に1を足して4なんて煩わしいこと

off位置からlen個取りたい → off..<(off+len)
"key=value"からkeyを切り出したい → 0..<(=の位置)

閉区間では1を引くなんて煩わしいことが必要とも言える
使い易さの例がマジックナンバーなのはナンセンスでは?

非対称な構文にすべきという点には異論無いけど
それ以外の部分は、君がそう思っているという以外に根拠が無いように見える



443 名前:デフォルトの名無しさん [2020/02/22(土) 22:31:04 ID:iumKj4t4.net]
>>429
範囲をマジックナンバーで指定したい場面は多い。

閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。
例えば、2月22日から5日間は、22 + 5 - 1 = 26だから26日までと理解する。
変数で書く場合も、off..<(off + len)よりoff..(off + len - 1)の方が最小値と
最大値が両方明示されていて分かりやすいと思うが、人によって違うだろうし、
半開区間の方が4文字短いので、好みに応じて選べるようにするのが良い。
offを二度書かずに済む構文off+..(len - 1)とoff+..<lenがあるともっと良い。

444 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:34:01 ID:WVugcdbO.net]
>閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。

他の人は半開区間もすぐに染みつくから問題ないのよ。

445 名前:デフォルトの名無しさん [2020/02/22(土) 2 ]
[ここ壊れてます]

446 名前:3:19:17.03 ID:40Zqn9UM.net mailto: >>399
無いなら作れば良い。
そう。Haskellならね。

組込のindexえんざんし(!!)だとこう

[1..3]!!0
>1

んで、1で始まるindex演算子が欲しければ作る。

(x:_) !!! 1 = x
(_:xs) !!! n = xs !!! (n - 1)


[1..3]!!!1
>1
[]
[ここ壊れてます]

447 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:41:19 ID:swIKwGW1.net]
な、なんだってー!!!!

448 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:46:03 ID:3tA6OTRM.net]
そんなとこでつまづく様じゃどのみちまともにプログラムできる様にはならんだろ

449 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:49:32.86 ID:zVGqPuAA.net]
>>432
今のところこいつが一番頭悪そう

450 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:54:59.87 ID:dIBglAMb.net]
>>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日終日」という暗黙の非対称性があるため

451 名前:デフォルトの名無しさん [2020/02/22(土) 23:55:16.88 ID:iumKj4t4.net]
>>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を提供してもらいたい。

452 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:57:09.96 ID:dIBglAMb.net]
>>430
一方で時間は「昼休みは12:00〜13:00の1時間」のような半開区間の表現と
12:00〜12:59のような閉区間の表現がある (秒以下もあるので中途半端だが)
ググった限りでは前者の方が一般的に見える

行程表などでの分割では 12:00〜12:30, 12:30〜13:00 のようになる

これは君が「特殊な場合」と言ったものの実例
整数区間の日付と実数区間の時刻



453 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 00:43:44 ID:ngt5amF4.net]
配列が1から始まるウンコさに比べたら
こんなもん誤差ですよ

454 名前:デフォルトの名無しさん [2020/02/23(日) 01:27:08.73 ID:A66EETsq.net]
おじさんてほんと豆知識自慢好きだよな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<225KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef