Julia言語ってどうな ..
[2ch|▼Menu]
13:デフォルトの名無しさん
23/07/27 23:35:45.28 L/etlfw/.net
Juliaも見事に駄目言語だな。こんな変てこな言語を使ってはいけない。

×駄目言語たち (実行すると0が表示される)

 a = b = [1, 2, 3]; a[2] = 0; println(b[2]) # Julia
 a = b = [1, 2, 3]; a[1] = 0; print(b[1]) # Python
 a = b = [1, 2, 3]; a[1] = 0; print(b[1], "\n") # Ruby

○まともな言語たち (実行すると2が表示される)

 vector<int> a, b = {1, 2, 3}; a = b; a[1] = 0; cout << b[1] << endl; // C++ STL
 int[3] a, b = [1, 2, 3]; a = b; a[1] = 0; writeln(b[1]); // D
 integer :: a(3), b(3) = (/1, 2, 3/); a = b; a(2) = 0; print "(i0)", b(2) !! Fortran
 a = b = [1, 2, 3]; a(2) = 0; printf("%d\n", b(2)) # Octave
 a <- b <- c(1, 2, 3); a[2] <- 0; cat(b[2], "\n") # R

△まあ許せる言語 (1行目と2行目を実行するとそれぞれ0と2が表示される)

 $a = $b = 1, 2, 3; $a[1] = 0; $b[1] # PowerShell
 [int[]]$a = [int[]]$b = 1, 2, 3; $a[1] = 0; $b[1] # PowerShell

駄目言語たちの挙動はC/C++でaがポインタの場合

 int *a, b[] = {1, 2, 3}; a = b; a[1] = 0; printf("%d\n", b[1]); // C/C++

の動作に似ている。C/C++はaをポインタとして明示的に型宣言しているので納得できるし、
aを配列として型宣言した場合

 int a[3], b[] = {1, 2, 3}; a = b; a[1] = 0; printf("%d\n", b[1]); // C/C++

はコンパイルエラーになり実行できないので問題ないが、駄目言語たちはどう見ても配列の代入にしか
見えない書き方なのに実際の挙動がそうならないのは大問題で、バグの元となるのは必定。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

374日前に更新/8340 Bytes
担当:undef