Es kann interessant sein, die Wiki-Seite für Array programming zu überprüfen, was sagt
Moderne Programmiersprachen, die Array-Programmierung unterstützen, werden in wissenschaftlichen und technischen Einstellungen häufig verwendet; Dazu gehören Fortran 90, Mata, MATLAB, Analytica, TK Solver (als Liste), Octave, R, Cilk Plus Julia und die NumPy Erweiterung Python ...
sowie Seiten für array slicing und a list of array languages. Also, mehrere Sprachen scheinen eine ähnliche Syntax haben
Hier einige Beispiele sind (es können Fehler sein, so überprüfen Sie bitte selbst ..) (die als ALGOL68 zurück zu so alt geht?!):
Fortran:
program main
implicit none
real, allocatable :: v(:)
integer i, n
n = 8
v = [(real(i)**2, i=1,n)]
print *, "v = ", v
v(2:n-1) = 0.5 * (v(1:n-2) + v(3:n))
print *, "v = ", v
end
$ gfortran test.f90 && ./a.out
v = 1.00000000 4.00000000 9.00000000 16.0000000 25.0000000 36.0000000 49.0000000 64.0000000
v = 1.00000000 5.00000000 10.0000000 17.0000000 26.0000000 37.0000000 50.0000000 64.0000000
Python:
import numpy as np
n = 8
v = np.array([ float(i+1)**2 for i in range(n) ])
print("v = ", v)
v[1:n-1] = 0.5 * (v[0:n-2] + v[2:n])
print("v = ", v)
$ python3 test.py
v = [ 1. 4. 9. 16. 25. 36. 49. 64.]
v = [ 1. 5. 10. 17. 26. 37. 50. 64.]
Julia:
n = 8
v = Float64[ i^2 for i = 1 : n ]
println("v = ", v)
v[2:n-1] = 0.5 * (v[1:n-2] + v[3:n])
println("v = ", v)
$ julia test.jl
v = [1.0,4.0,9.0,16.0,25.0,36.0,49.0,64.0]
v = [1.0,5.0,10.0,17.0,26.0,37.0,50.0,64.0]
Kapelle:
var n = 8;
var v = (for i in 1..n do (i:real)**2);
writeln("v = ", v);
var vtmp = 0.5 * (v[1..n-2] + v[3..n]);
v[2..n-1] = vtmp;
writeln("v = ", v);
$ chpl test.chpl && ./a.out
v = 1.0 4.0 9.0 16.0 25.0 36.0 49.0 64.0
v = 1.0 5.0 10.0 17.0 26.0 37.0 50.0 64.0
(bitte Wiki-Seiten usw. für andere Sprachen sehen).
Ich denke, die Array-Notation wie :
oder ..
ist sehr bequem, aber es kann zu unerwarteten Ergebnissen führen (wenn nicht richtig verwendet, z. B. die Bedeutung von Indizes oder eine mögliche Überlappung von LHS/RHS) oder verursachen Overhead-Zeit (wegen der temporären Arrays), zu Fällen variieren. Also achten Sie bitte darauf, wenn es tatsächlich mit ...
Was ist „es“ im ersten Satz? Die Fortran Sprache? Von Kopf bis Fuß macht MATLAB das auch. – Ross
@Ross, fest, dass „es“ – marmistrz
Python, Kapelle, Julia, jeder mit seiner Lieblingssprache beantworten kann. Voting zum Schließen als zu breit, weil * "Es gibt entweder zu viele mögliche Antworten" * –