Je zajímavé, že jazyk J byl vyvinut počátkem devadesátých let a přesto nepřevzal některé zažité symboly z ostatních tehdy již rozšířených jazyků, ale definuje vlastní. Například pro <= používá <: , pro přiřazení používá =: místo := . Je v tomu nějaký hlubší důvod, nebo jen autor chtěl být za každou cenu originální? ;-)
Me to taky zarazilo a vysvetluji si to tak, ze si Iverson rekl, ze funkce (=operatory v jinych jazycich) jsou zapisovany jednim znakem, za nimz muze byt pouze tecka nebo dvojtecka a jako spravny matematik se tohoto uzusu drzel :-) Jiny duvod bych tam nehledal a ani kdyz jsem si cetl rozhovory s Iversonem (byl to velmi chytry pan), tak se o tom nezminoval.
Není v dnešní době praktičtější naučit se dělat s Matlabem místo učení se J nebo, nedejbože, APL? Mám teď namysli především čtenáře, co byli v minulých dílech tak odvaření z vektorových (maticových, tenzorových) schopností APL – toho se dá v Matlabu užít taky dosyta a syntaxe není tak, ehm, ortodoxní…
(Jinak ale chápu, že je to seriál o historii)
v prikladu
NB. porovnani prislusnych slozek vektoru a vraceni mensi z nich
1 2 1 <: 3 2 1
1 2 1
by melo byt <. (jestli jsem to dobre pochopil, <: by vratilo matici bool mensi nebo rovno)
v casti o operatoru prirazeni =: je napsano, ze to odpovida sipce dolu z APL, ale jestli si dobre vzpominam, mela by to byt sipka doleva.
Síla J je v ‚tacit programming‘, tedy řazení sloves do vlaků, které umožňuje nejen efektivní zápis, ale také hyperrychlé zřetězené zpracování. Např. na projecteuler.net jsou některá řešení v J rychlejší, než ta v asembleru.
Řešení problému 69 [projecteuler.net]:
([ i. >./) (5&p:) @ i.1000000
nebo třeba problému 28
+/+/\1,4#2*>:i.500
Číst J je sice náročné a pro mě osobně stále ještě těžší, než jej psát, ale vyjadřovací moc je nesmírná.