次世代言語25 TypeScript Swift Go Kotlin Rust Nimat TECH
次世代言語25 TypeScript Swift Go Kotlin Rust Nim - 暇つぶし2ch977:デフォルトの名無しさん
22/06/20 13:09:02.41 rr2OcjMu.net
型なし言語って、誤用でしか用例を聞いた覚えがないけど、型なし言語とかいう用語はあるの?
文脈からして何を言いたいかはわかるんだけど

978:デフォルトの名無しさん
22/06/20 13:09:53.23 rr2OcjMu.net
値に型がない言語のことを型なし言語、って呼ぶのは正しいの?

979:デフォルトの名無しさん
22/06/20 13:52:48.64 6L0FdSjR.net
型無し言語じゃない
型無し糞言語だ
間違えるな痴れ者が
型無し糞言語3兄弟といえばRuby、PHP、Perl
業界の常識
未だこれ使ってる時代遅れのバカ老害どもは首吊って死んでええぞ

980:デフォルトの名無しさん
22/06/20 13:55:02.11 4VWLMq9p.net
>>961
URLリンク(ja.wikipedia.org)
型付けを更に厳密に定義した区分として型なし(英: untyped)という区分が存在する。
代表的な言語としてはSmalltalk[7]、BCPL、B言語、アセンブリ言語などがある。
Smalltalkでは高速化のため処理系依存で実行時に型検査することがあるものの言語的には型検査がなく、
動的型付け言語のように文字列に割り算をするといった不正な操作をしても処理系が型検査して停止する事は無い。
BCPL、B言語、アセンブリ言語などオブジェクト指向とは関係なく型を持たない言語では、
ハードウェアのワード長に依存した1種類の型のみを持つか、
言語を使う側でデータを参照するときにデータ幅や種類の解釈を決定することとなる。

981:デフォルトの名無しさん
22/06/20 14:10:59.58 G0GSIi1k.net
>>960
bashのdeclareについては一旦忘れていただく方向でお願いします

982:デフォルトの名無しさん
22/06/20 14:23:54.46 rr2OcjMu.net
>>964
ほんまや
Brainfuckとかみたいな難解言語もだいたいuntypedかな

983:デフォルトの名無しさん
22/06/20 14:32:59.17 njNeMAGl.net
>>963が言っている型無し言語とは、一つの変数がいろいろな型の値を束縛できるってこと?

984:デフォルトの名無しさん
22/06/20 15:16:39.40 gnE/PDYV.net
untypedは基本的にdynamically typedのこと
アカデミック用語で実務者用語ではない
実務者が型なし言語と呼ぶのはtypeless languagesのこと
現代において動的型付け言語を型なし言語と呼ぶのは明らかな間違い

985:デフォルトの名無しさん
22/06/20 15:39:41.45 rr2OcjMu.net
>>968
> untypedは基本的にdynamically typedのこと
出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。

986:デフォルトの名無しさん
22/06/20 15:54:46.01 4VWLMq9p.net
型付けなんてプログラマにとっては基本の基本で
おろそかにしていいものではないから
> 型無し糞言語3兄弟といえばRuby、PHP、Perl
これがいかにド素人で無教養で恥知らずな発言かは
お分かりいただけてると思う

987:デフォルトの名無しさん
22/06/20 16:28:03.20 G0GSIi1k.net
複おじ怒りのマジレス

988:デフォルトの名無しさん
22/06/20 18:29:27.28 1agQsnkM.net
>>901
これがちょっと辛いんだよな。

989:デフォルトの名無しさん
22/06/20 18:53:41.48 BnXOM/sm.net
型無し言語と言えば型無しラムダ計算だろ。

990:デフォルトの名無しさん
22/06/20 19:04:42.99 hXDnNrPc.net
次スレ(リニューアル)
Era 26
コンセプトは、現状の漠然とした実質未来最強言語決定戦という誰も得しない未来トレンドの断定を避けて、
次世代言語はまだ存在しない仮説を使って建設的な言語仕様の検討を促すことです。

991:デフォルトの名無しさん
22/06/20 19:05:46.77 hXDnNrPc.net
スレリンク(tech板)
↑次スレのリンクです。もし興味があればどうぞ。
(一定数いる最強言語決定戦を続けたい層には不向きかもしれないので、
棲み分けなどに、もし良いアイデアがあればどうぞご自由になさいませ。)

992:デフォルトの名無しさん
22/06/20 19:24:15.90 cgMFd80D.net
そういうのGitHubでやったほうがいいよ

993:デフォルトの名無しさん
22/06/20 19:52:16.37 E2oosySA.net
>>972
今どきの言語ならそんなことは起きないんじゃないかな
例えばRustの標準ライブラリには同名のreplace()という関数が10個もあるけど
(1) まず名前空間が分かれている
例えば str::replace() や Option::replace() など
(2) 次にメソッドの場合は名前空間を明示する必要がない
例えば let s = "価格: 123円"; という文字列に対してはstr::を付けずに
s.replace("価格", "値段"); // → "値段: 123円"
(3) 更にジェネリックな引数も取れる
例えば文字列""ではなく文字''も指定可能
s.replace('円', "万円"); // → "価格: 123万円",
文字判定関数を指定することも可能
s.replace(char::is_numeric, "*"); // → "価格: ***円"
このように様々な対象に対して様々な引数で用いられていても
同名のreplace()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている

994:デフォルトの名無しさん
22/06/20 20:07:59.34 8GsqMDfw.net
次スレ立てるのはもうそろそろかな

995:デフォルトの名無しさん
22/06/20 20:46:13.10 6L0FdSjR.net
>>975
アスペっぽい ガイジ

996:デフォルトの名無しさん
22/06/20 21:02:14.54 Hg6hQLhP.net
>>963
ガイジ乙!

997:デフォルトの名無しさん
22/06/20 21:08:22.86 mSfgS0Wr.net
>>977
3つともオーバーロードやデフォルト引数はほぼ関係ない話じゃん
3つめがかろうじてオーバーロードに引っかかってはいるが論点が違う

998:デフォルトの名無しさん
22/06/20 21:24:31.48 j7veV6LL.net
シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね?

999:デフォルトの名無しさん
22/06/20 21:29:29.90 ofPdKV5n.net
>>982
その2つがどう関係あるのか説明してくれ

1000:デフォルトの名無しさん
22/06/20 21:39:32.57 j7veV6LL.net
シャドーイング  同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き

1001:デフォルトの名無しさん
22/06/20 21:50:35.85 lr2wAV+c.net
引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。

1002:デフォルトの名無しさん
22/06/20 22:04:20.07 j7veV6LL.net
せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ

1003:デフォルトの名無しさん
22/06/20 22:09:55.02 xRbFgwNB.net
>>984
なるほどそういう意味か
イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる

1004:デフォルトの名無しさん
22/06/20 22:17:07.52 G0GSIi1k.net
>>982
C++/Java/C#書いてる脳だとまあすんなり同意するけど
OCamlだのHaskellだの書いてる脳で読むと「お前の普通なんか知らねーよ」って感じだな

1005:デフォルトの名無しさん
22/06/20 22:26:34.16 GOjINbNj.net
>>982
効果が真逆という結論のようです
> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果
確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね

1006:デフォルトの名無しさん
22/06/20 22:30:15.50 j7veV6LL.net
書き込みする前に読み返したか?
ふわっふわしてるぞ

1007:デフォルトの名無しさん
22/06/20 22:36:51.94 j7veV6LL.net
Rsutは関数オーバーロードがないから
int(price_str)できない

1008:デフォルトの名無しさん
22/06/20 22:44:52.02 d/VymnYf.net
>>991
そういう時にメソッドではない不要なグローバル関数を設けるプログラミング言語は時代遅れ
もしstrに対してintに変換する関数int()を用意するならばstrのメソッドとして用意する
君には>>977を読み直すことを勧める

1009:デフォルトの名無しさん
22/06/20 22:52:38.23 j7veV6LL.net
Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある
x.abs()と言う不思議な感じになる

-1_i32.abs()
は -1になる変な言語

1010:デフォルトの名無しさん
22/06/20 22:54:18.35 GOjINbNj.net
>>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?

1011:デフォルトの名無しさん
22/06/20 22:55:48.87 j7veV6LL.net
>>994
出た
愚者の?

1012:デフォルトの名無しさん
22/06/20 22:59:31.50 bmv2finQ.net
>>993
>int(price_str)できない
>Rustは同様に abs(x)ができない
それはどっちもできるよ

1013:デフォルトの名無しさん
22/06/20 22:59:45.45 4VWLMq9p.net
>>993
i32::abs(-1)

1014:デフォルトの名無しさん
22/06/20 23:01:03.11 j7veV6LL.net
parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味
そのparseだってどうせトレイトで実装してんだろ?

1015:デフォルトの名無しさん
22/06/20 23:02:42.38 MklghZCY.net
>>985
ジェネリクスはまた別物だろ。
ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。

1016:デフォルトの名無しさん
22/06/20 23:03:17.12 j7veV6LL.net
>>996-997
それは実質fabs()と変わらない

1017:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 5時間 10分 42秒

1018:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch