Die wörtliche (aber immer noch ziemlich idiomatische) Art, dies in J zu schreiben, wäre wie folgt.
m =: 100 $ 0 NB. This means create a 1d array consisting of 100 zeros.
j =: 5
y =: 10
Mit dieser Initialisierung aus dem Weg, jetzt sind wir für das Fleisch der Antwort bereit, die aus zwei unterschiedlichen Verwendungen von the }
adverb ("Item Amend" and "Amend") besteht.
m =: y j } m
Putting zwei Argumente auf der linken Seite des }
verursacht J das j
te Element des rechten Argument m
mit dem Wert y
zu ersetzen. HINWEIS: Wir mussten das Ergebnis zurück in m
zuweisen, da das Ergebnis von y j } m
war, einfach ein neues Array zu berechnen, das die von Ihnen angeforderte Änderung mit dem Verb }
enthielt.
y =: j } m
Putting nur ein Argument links von der }
verursacht J das j
te Element von m
und senden es an exzerpieren. In diesem Fall setzen wir y auf das Ergebnis.
[RosettaCode] (http://rosettacode.org/wiki/Arrays#J) könnte ein besseres Forum für diese Art von Vergleich sein. – Tikkanz