Julia言語ってどうな ..
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