X



次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
0440デフォルトの名無しさん
垢版 |
2020/02/23(日) 01:27:08.73ID:A66EETsq
おじさんてほんと豆知識自慢好きだよな
0441デフォルトの名無しさん
垢版 |
2020/02/23(日) 01:52:12.77ID:4j3W7HlN
>>439
配列が1から始まったら何か不都合がありますか?
0442デフォルトの名無しさん
垢版 |
2020/02/23(日) 06:56:02.42ID:z54NwjgJ
numpyとか
数値計算専用ライブラが
充実してて使いやすればいいだけの話。
言語ネイティブのシンタックスで
そこまでサポートしなくてもいいし、
どうでもいい。
0443デフォルトの名無しさん
垢版 |
2020/02/23(日) 07:02:30.87ID:z54NwjgJ
しかしよく考えたら
if(0 < x < 10)
くらいの比較演算は確かにあったら便利だよな
なんでこれができる言語はないのか。
もしくはbetweenとか
誤解を招くような記法を使うのではなく、
普通の不等号で挟めるのが一番わかりやすいな。
0444デフォルトの名無しさん
垢版 |
2020/02/23(日) 08:28:32.81ID:NXppToWn
一発目でboolが出てこない特別ルールを構文解析器に埋め込まなきゃなんないからな
0449デフォルトの名無しさん
垢版 |
2020/02/23(日) 10:09:37.75ID:DWh+LsOr
こんなしょーもないことでグダグダ文句言うくらいなら本人だけがjuliaでも使ってりゃいいんだよ。
こういう馬鹿に限って人に自分の感覚を強制しようとする。
0451デフォルトの名無しさん
垢版 |
2020/02/23(日) 11:19:19.18ID:y7plF7NK
これ自分の「正しさ」を人に押しつけるパターンではないな
狼少年は自分の言葉が正しくないと知りながら人に教える
動機は、例えば何かの記憶を消すためにでたらめなデータで上書きするとか
0452デフォルトの名無しさん
垢版 |
2020/02/23(日) 12:03:38.48ID:e2r12CYr
>>443
Pythonかな
0454デフォルトの名無しさん
垢版 |
2020/02/23(日) 15:28:27.91ID:SvXUu1bl
そういうことじゃなくて、0<x<10 の 0<x の部分と単体の 0<x では異なる評価をしないとならないということ。
モナドみたいな形で解決できるかもしれないが。
0455デフォルトの名無しさん
垢版 |
2020/02/23(日) 21:19:41.25ID:eJliGvsG
>>438
「○〜○」や「○から○まで」という表現は閉区間だよ。13時ちょうどは次の閉区間と
重複し、昼休みであると同時に昼休みではないことになり、厳密に言えばおかしいが、
13時とそれより0.01秒前または後との違いなんて日常感覚では知覚できないから、
このような表現でも問題なく通用している。

秒を小数で表示すれば実数になるが、(連想配列でない)配列の添字は整数しか
ないから、実数を持ち出すのはそれこそナンセンス。実数は数直線上の点だが、
整数は番号が付けられた桝目として捉えられる。配列は下図のようなメモリ格納
イメージだから、

012345
□■■■□□

黒く塗られた部分をスライスとして指定したければ、その部分の最初と最後の番号を
使ってa[1:3]と書くのが分かりやすく間違えにくい。Excelのセル番地の範囲を
指定するのに閉区間でA1:B3と書き、半開区間でA1:<C4とは書かないのと同じ。

>>441
PowerShell, Python, Rubyのように配列の添字が負の整数-iのとき最後からi番目の
要素を指す仕様の言語では、正の整数iのとき最初からi番目の要素を指す仕様(つまり
添字が1始まり)にする方が整合性が取れて分かりやすいな(実際には0始まり)。
0456デフォルトの名無しさん
垢版 |
2020/02/23(日) 22:23:06.83ID:BvZqtd/x
>>455
> 配列の添字は整数しかないから、実数を持ち出すのはそれこそナンセンス
区間という概念が配列にしか使われないとでも?

> 13時ちょうどは次の閉区間と重複し、昼休みであると同時に昼休みではない
時間帯毎の集計程度の処理で容易に不具合出しそう
0457デフォルトの名無しさん
垢版 |
2020/02/23(日) 23:26:10.61ID:SvXUu1bl
グラフィック処理でのピクセル座標系とグリッド座標系の違いの方が似てるかな。
昔は直感的なピクセル座標系も使われていたけど、グリッド座標系の方が合理的だということが理解されて
今じゃそっちが主流だな。
0459デフォルトの名無しさん
垢版 |
2020/02/24(月) 00:07:37.86ID:XuGp3j1T
馬鹿が馬鹿なことを言ってるだけだわ。
電流が本当は負の方向にながれててもそのまま正負は変えてないってことの意味を少しは理解しろ。
0463デフォルトの名無しさん
垢版 |
2020/02/24(月) 11:16:49.98ID:FL3aaU5e
添字が実数の場合は左辺値という概念がなくなるだろうから
[]演算子は意味のない仕様だよ
()演算子だけでいい
0471デフォルトの名無しさん
垢版 |
2020/02/24(月) 18:06:27.88ID:/m2XX1oE
あまりに社会に都合がわるい真実なので隠蔽されているが
笑いは基本的には嘲笑であり相手との社会的距離による
自分の地位向上が見込めそうなとき笑いが出る

自分と近しい人だとちょっとした失敗のとき笑う、ケガとかは後で自分に面倒がくるから笑えない
自分と距離がすごくある、究極的にはフィクションだと指でつつかれて頭が吹っ飛ぶのに大笑いできるわけだ

愚かさをアピールして反射的な笑いを取る方法だと
長期になるとそいつが愚かなのはわかりきってるので笑えなくなる

状況が思いもしない方向に転換するようなときは長編でも笑える
0472デフォルトの名無しさん
垢版 |
2020/02/24(月) 19:55:05.44ID:17cy6+il
>>461
範囲指定(スライスに限らない)が閉区間だけの言語
Fortran, F#, Haskell, Julia, MATLAB, Octave, Pascal, PowerShell, R, S, Scilab

どう見ても使用者の平均的な知能は半開区間だけの言語より高そうだなw

蛇に唆され禁断の果実を食べ「知恵」を得たが、「知恵」と呼べるほどのものでは
なかった。代償として産みの苦しみが増し、苦労して食物を収穫し、死んで塵に
帰らなければならなくなった――

Pythonに後続し半開区間だけにしたGoは、非合理で書きにくい記法を甘受しなければ
いけない、>>2の表現を借りるなら「イケてない労働者言語」か… その地位を
否定したいなら、改悛して閉区間も取り入れ、Pythonを駆逐してもらいたい。
0473デフォルトの名無しさん
垢版 |
2020/02/24(月) 20:11:23.36ID:XuGp3j1T
>>472
だからその使用者の平均的な知能が高そうな言語をおまえは使ってたらええやん。
そんなことも通じない人の知能が高いとはとても思えないけれど。
0475デフォルトの名無しさん
垢版 |
2020/02/24(月) 21:42:39.58ID:17cy6+il
>>473
Pythonは何から何までキモくてただ絶滅を願うのみだが、Goは基本的には
良い言語だから、直すべき所は直して、より使いやすい言語になってもらいたい。
教祖様の決定はすべて正しいので信者は黙って従えという言語ではない(Swiftは
C系列の新言語の中では良くできていると思うが)から、不満点があれば改善を
求めて構わない。

>>428にあるGoの巨大数パッケージについてはどう思う? あんな煩雑な書き方で
満足できる? C#のようにすっきり書けるようになってもらいたくないか?
0476デフォルトの名無しさん
垢版 |
2020/02/24(月) 22:40:17.58ID:XuGp3j1T
じゃあC#つかって巨大数の計算してりゃええよ。
なんで無理にどの言語も同一的にしようとするのか?愚かとしか言いようがない。
お前が挙げてる下の言語にgoに近くなるように言ったらええわ。
Fortran, F#, Haskell, Julia, MATLAB, Octave, Pascal, PowerShell, R, S, Scilab
賢い人ばっかならそっちのが意見きいてくれるだろw
0477デフォルトの名無しさん
垢版 |
2020/02/24(月) 22:45:23.33ID:1U5lho1x
1始まりの閉区間これ最強マジお勧め

1. nが符号付整数でも
for (n = 100; n >= 1; n--) { ... }
 が有限ステップで止まる

2. nで表せる上限が65535のとき
 for (n = 1; n < 65535; n++) { ... } より
 for (n = 1; n <= 65535; n++) { ...
0478デフォルトの名無しさん
垢版 |
2020/02/24(月) 22:45:56.20ID:OInStaY+
>>475
求めるのは構わないがそれに対する反対もまた正当

言語設計者/コアメンバの判断やコミュニティで賛成多数かなどで決まるだろうが
不要な追加は改悪になりうるので説得出来ないなら現状維持が優先される

自分の好みや引き合いに出した言語の使用者の知能が高そうという話で
より多数の使用者を抱える言語の仕様を変えられると考えるのは無理がある
0480デフォルトの名無しさん
垢版 |
2020/02/24(月) 23:18:53.55ID:17cy6+il
>>478
後方互換性がない改版はむやみにすべきではないが、不合理な点をいつまでも
引きずるのも良くない。PythonやRubyは後方互換性がない改版を敢行した。

範囲を半開区間でしか指定できずそれをa[1:4]のように書くのは、for文で言えば
for (i = 1; i <= 3; i++) を禁止し、for (i = 1; i < 4; i++) しか許さず、
しかもそれをfor i = 1 to 4と書けと言っているような滅茶苦茶な仕様。

>>479
C#のスライスの歴史は浅く、2019年9月のC#8.0で採用されたばかり。同じ.NET系で
スライスを既に持っていたF#とPowerShellに合わせて閉区間にすべきだったな。
もちろん、a[1..<4]で半開区間を表し、それをF#とPowerShellにも導入するのは
一向に構わない。
0482デフォルトの名無しさん
垢版 |
2020/02/24(月) 23:38:10.64ID:OInStaY+
>>480
滅茶苦茶な仕様とやらは閉区間だけの言語には言わないのか?

専用の演算子が用意されていないことを禁止と言い換えるあたりもズレているし
それともそういう動作の関数すら自分で実装出来ないのか

自分の主観を中心にしすぎだ
だから好きな言語を使えという話になる
0483デフォルトの名無しさん
垢版 |
2020/02/25(火) 00:00:00.40ID:AmG8+LM2
>>482
閉区間だけなのは滅茶苦茶ではない。forループで言えば、Basic, Fortran, Pascalなどは
for i = 1 to 3のような書式しかなく、それでi = 1, 2, 3を網羅する。半開区間にしたければ
whileループを使う。

演算子を使えばすっきり書けるのに、何で>>428の巨大数演算みたいに関数でゴテゴテ
書かなければいけないのか。おまけに関数も自分で実装しなければならないなんて、
それこそ他の言語を使った方が良い。
0485デフォルトの名無しさん
垢版 |
2020/02/25(火) 02:54:50.77ID:oSeHo6cg
そんなに閉区間がいいならa.slice(1,3)とか作ればええやん・・・
と思ったが

Goはnon-localな型を直接拡張できないから
自前でラッパーを定義しないとa.slice(1,3)は無理

じゃslice(a, 1, 3)でもいいかって考えるけど
ジェネリックがないから要素の型ごとに関数定義が必要・・・
じゃマクロでコード生成すればいい・・・・・ってマクロもない

詰んどるやんけ
もうa[m:n+1]でええわってなる
0486デフォルトの名無しさん
垢版 |
2020/02/25(火) 03:52:13.55ID:1ovb/01f
Go ていつもそんな感じだよなwww
言語内で出来る範囲で済んでるうちはまあまあ快適だけど
いざ「これさぁ・・何度も同じパターンでてくるからなんかうまく
楽するやりかた考えられんもんかな」ってはじめると
あーージェネリックないから全部書かないといけないのか面倒くせぇ・・
じゃマクロ・・はないのか・・じゃあどうすれば・・
えええいもういいやベタでシコシコ書こう、ってなりがち
でそういうグチ言うとジェネレーター使えとかいわれるけどあんな
ウンコみたいな機構に頼らないといけない時点でクソすぎるわ
0490デフォルトの名無しさん
垢版 |
2020/02/25(火) 19:15:23.89ID:C32G0TY+
新言語覚えただけで仕事した気になるガイジ
俺みたいな優秀なビジネスマンから見たら同じことしてるだけで偉そうにしてるゴミ
0491デフォルトの名無しさん
垢版 |
2020/02/25(火) 21:30:57.62ID:AO5ezpPA
おまえは優秀なんだろうな
何がしたいのかわからんアホのために
仕事をし、結論をだし、さらにはその意味付けまで考え出す

馬鹿がトップにいても優秀に見えるようにふるまえる

おれはそんなに優秀じゃない
心が死ぬ
0493デフォルトの名無しさん
垢版 |
2020/02/26(水) 19:03:12.30ID:JAINtVGn
RustもPythonないとビルドできないクソ言語。
しかも2.7系。依存が深すぎて3系にアップグレードできないw
0495デフォルトの名無しさん
垢版 |
2020/02/26(水) 21:17:35.91ID:LEGaL302
IBMがSwift開発を終了 - Chris Bailey氏とのQ&A
https://www.infoq.com/jp/news/2020/02/ibm-stop-work-swift-server/

IBMは先頃、サーバサイドSwiftの開発を中止した。これはSwiftがオープンソース化して間もなく開始されたもので、Swift Server Worl Griup[SSWG]のリーダシップも同時に譲渡されている。

GoとRust、そしてSwiftは、型安全でコンパイル可能なネイティブ言語として、CおよびC++の代替となる"現代的ネイティブ言語"としてグループ分けされることが少なくありません。

GoはKubernetesのようなクラウドテクノロジのコアインフラストラクチャや、CLIの開発などに使われるシステム言語として、真の得意分野を見つけることに成功しました。
Rustはまだ展開すべき場所を模索している段階ですが、Web Assemblyによって大きな関心を集めるようになっています。
Swiftが採用曲線において遅れを取っていることは否めない事実です。
0496デフォルトの名無しさん
垢版 |
2020/02/26(水) 22:47:29.71ID:dT4BwRcy
TypeScriptは高カインド型作れないのを早くなんとかしてくれ
インターフェース使って無理やり実現するハックもあるけど、ポリモーフィックな関数のUnionをちゃんと単一化できないあたり雑魚いなあという印象
0500デフォルトの名無しさん
垢版 |
2020/02/27(木) 00:26:44.33ID:SC3VM5LZ
カリー化か
0502デフォルトの名無しさん
垢版 |
2020/02/27(木) 09:21:04.85ID:OJ5+vP6y
低知パキスタン型と戦わせよう
0504デフォルトの名無しさん
垢版 |
2020/02/27(木) 13:01:06.82ID:OJ5+vP6y
VIRUSをUIRUSって書くって古代ローマ人かよお前www
0507デフォルトの名無しさん
垢版 |
2020/02/27(木) 17:11:17.64ID:igir/6Hq
mapの引数がlist<A>ならlist<B>を
vector<A>ならvector<B>を返したい
だが引数の型をTとすると返り値の型を宣言できない
0508デフォルトの名無しさん
垢版 |
2020/02/27(木) 17:43:30.43ID:jwUSyqkl
c++の型出しテンプレートの不自由版みたいなもんか
0509デフォルトの名無しさん
垢版 |
2020/02/27(木) 20:01:01.74ID:SC3VM5LZ
型宣言のないネイティブJavaScriptが
いかに最強かが分かるな
0514デフォルトの名無しさん
垢版 |
2020/03/01(日) 00:36:11.71ID:D/Yz/cH7
高カインド型は、要は型引数を取るジェネリック型の総称だよ

たとえばArrayは、Array<number>とかArray<Indo>は具体型(実行時に存在する値をとりうる型という意味で、抽象クラスに対する具象クラスという意味の具体ではないことに注意)だけど、
型引数を入れてないArray<_>のままだと実行時の値をつくれない
これにnumberなど具体型を入力してやれば、はじめてArray<number>などの具体型となる

そこでArray<_>は「具体型に作用して新たな具体型を作るもので、具体型ではないなにか」と考えられ、こういうものを1階カインドとか Type → Type のカインドを持つという

同様に型引数2個のジェネリック型は2階カインドだったり、具体型は0階カインドともいう。
0階以外のカインドを持つ型を総称し高カインド型と呼ぶ
0516デフォルトの名無しさん
垢版 |
2020/03/01(日) 00:47:37.29ID:D/Yz/cH7
TypeScriptのジェネリクスの高階カインド型サポートがいまいちなのは、
「ジェネリック型に入れられるのが具体型に限定されていること」で、

たとえば map をサポートするジェネリックインターフェースとして
Mappable<f>を作るとする

そのインターフェースを実装できるクラスはカインド1、つまりArray< >など
型引数を1個とるクラスだけにしたい けど、できない

また、カインド Type -> Type -> Type の高カインド型に型1個入れたものは
カインドType -> Type になってほしいけど、こういうこともできない

たとえばkey-valueペアのMap<_, _>なんかは2階カインドだけど、
キータイプだけ指定した Map<string, _> を1階カインドと見なしてMappableを実装させたい(map はMapの各値を変換する関数になる) けど、これもできない
0519デフォルトの名無しさん
垢版 |
2020/03/01(日) 09:39:10.97ID:wTWFPuO/
高力インド型
0520デフォルトの名無しさん
垢版 |
2020/03/01(日) 09:46:16.48ID:J3IrN4Ey
higher-kinded typesの日本語訳は高階型で別に良いと思うんだがな
カインド強調する意味がゼロとは言わないがデメリットのほうが大きい
0521デフォルトの名無しさん
垢版 |
2020/03/01(日) 10:24:35.13ID:TbG8Ke0I
高階関数という言葉を知ってれば、そこから類推できる高階型って呼び方の方が良いよね
0523デフォルトの名無しさん
垢版 |
2020/03/01(日) 12:37:26.26ID:GdO9iGlh
何でもできる方がいいと思い込んでるのはバカにありがちなセンスなのでしょうがない。
0524デフォルトの名無しさん
垢版 |
2020/03/01(日) 15:16:31.84ID:TbG8Ke0I
変につまみ食いしようとして使い勝手が悪くなるってこともあるよ
Java8から入ったStreamとOptionalみたいなのを自分で書くのすごい面倒くさい
0525デフォルトの名無しさん
垢版 |
2020/03/01(日) 16:33:14.39ID:hFYkB74O
null禁止型の配列の初期化に必要な無引数コンストラクタ
が無かったらコンパイルエラーになるコンパイラを自分で書けない
0527デフォルトの名無しさん
垢版 |
2020/03/01(日) 19:10:26.22ID:D/Yz/cH7
高階型はまた別じゃね?
Higher-kinded typesじゃなくてrank-N typesのことかと
0529デフォルトの名無しさん
垢版 |
2020/03/01(日) 21:22:24.37ID:GdO9iGlh
そんな糞機能がほしけりゃマクロ使ってでも実装すりゃいいんだよ。
そうすればゴミ機能ってことに気づくから。
0532デフォルトの名無しさん
垢版 |
2020/03/02(月) 08:24:29.53ID:vmTfu2dg
>>529
自分が理解できなかったものを話してる人がいるからってイライラするなよw
0533デフォルトの名無しさん
垢版 |
2020/03/02(月) 13:22:02.15ID:dzgadk5u
本当にいい言語は遠くから絶賛なんかじゃく、
自分ところの基幹言語としてプロジェクト全体の10%以上ぐらいの割合で採用するから。
0534デフォルトの名無しさん
垢版 |
2020/03/02(月) 13:48:47.72ID:JudLh/rB
>>532
理解してるから下らねーつってんだよカス。
お前こそその機能の無駄さとバギーさを理解しろ。
0535デフォルトの名無しさん
垢版 |
2020/03/02(月) 17:54:10.41ID:lNfcnDid
>>534
わかったわかった。
ジェネリクスについてちゃんと勉強してきてからまた読み直してくれよ。
0536デフォルトの名無しさん
垢版 |
2020/03/02(月) 18:08:36.58ID:1of+/HmK
C/C++が絶賛されないのはテストしすぎてリスクの大きさが見えるからだろ
本当に科学的なやつらはテストを嫌う
0538デフォルトの名無しさん
垢版 |
2020/03/02(月) 19:55:38.54ID:JudLh/rB
>>535
勉強しても問題が理解できてないのかよ。。少しは自分でコード組んでみれば?

>本当に科学的なやつらはテストを嫌う
こんな大嘘をよく平気で言えるな。
■ このスレッドは過去ログ倉庫に格納されています

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