Pomocou prime "'" v Julia premenných

0

Otázka

Mám veľa premenných a matríc, ktoré by som chcel volať s predným, ako napríklad:

xprime, yprime, rprime a tak ďalej.

Verím, že nemôžem používať x', y', r' atď. ako je napríklad používané pre transponované matice.

julia> x' = 5
ERROR: syntax: invalid assignment location "x'" around REPL[2]:1
Stacktrace:
 [1] top-level scope at REPL[2]:1

julia> x = [1,2]
2-element Array{Int64,1}:
 1
 2

julia> x'
1×2 LinearAlgebra.Adjoint{Int64,Array{Int64,1}}:
 1  2

Som otvorený akejkoľvek návrh pohodlnejší spôsob, ako xprime, yprime atď. čo je dosť dlhý a škaredé, si myslím.

julia variables
2021-11-22 13:53:52
1

Najlepšiu odpoveď

10

Môžete použiť predseda:

julia> x′ = 1
1

julia> x′
1

help?> ′
"′" can be typed by \prime<tab>

Všimnite si rozdiel, že ja používam (prime), zatiaľ čo ste sa pokúsili použiť ' (apostrof). Používajúce jeden citát nie je povolené v premennej meno, ako to vyvolá adjoint prevádzky na hodnoty, ktoré mu predchádzali (ktoré môžete vidieť vo vašom príklade).

Ako je vysvetlené v časti pomocník pre môžete ho zadať v Julia ZVE a vo väčšine redakcia nakonfigurovať pre podporu Julia zadaním \prime a stlačením klávesy Tab.

2021-11-22 14:38:24

Takéto konanie môže splniť pôvodné ciele, ale ja by som povedať, že to je čisté zlo, stand-bod čitateľnosť. Naivný čitateľ bude pravdepodobne netušia, že \prime sa používa namiesto jeden citát. Je to podobný pomocou hornej prípade Alpha ako názov premennej. Pozri gist.github.com/tdunning/219ec70253542253cd66f1021d57e677 pre príklad.
Ted Dunning

Súhlasila tiež by som nedoporučoval pomocou ľubovoľnej postupnosti znakov, ktoré by sa zmenilo, ak niekto používa Unicode normalizácie na sekvencie, ako je to vedie k zavádzaniu používateľa.
Bogumił Kamiński

Takže na záver vám odporúčam použiť xprime, rprime ako som to urobil ako prvý?
JKHA

Záleží. Ak sa chystáte váš kód na čítanie inými používateľmi, bez akéhokoľvek odkazu potom pravdepodobne áno. Avšak, ak váš kód nie pomocou lineárnej algebry (a preto neexistuje riziko zámeny s adjoint) a napr. kód doslovne reprodukuje matematické vzorce z niektorých papier (kde predseda je použité), potom si myslím, že to je v poriadku, ak ho chcete použiť. Na záver by som povedal: musíte byť istí, že zápis používate nevedie k reader zmätok. Ďalším príkladom je, že programátori sú zvyčajne odradiť od tvorby premenných s názvom l rovnako ako v mnohých písma vyzerá to veľmi podobne ako 1.
Bogumił Kamiński

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................