Všechny knihy o JAVĚ jsem včera spálil a nakoupil nové o APL (Amazon).
Moc díky pane Tišňovský, doufám, že tímto dílem seriál o APL neskončil !
Názory k článku
Programovací jazyk APL: programování bez smyček
To je žrádlo!
celé vláknoRe: To je žrádlo!
celé vláknoTesi me, ze se clanek libil. Bude jeste jeden dil a potom si popiseme jazyk J, ktery z APL vychazi. Iverson se pri navrhu J-cka uz trosku mirnil :-), takze se tam pouzivaji „jen“ ASCII znaky, ale nektere napady jsou v nem dotazenejsi.
Re: To je žrádlo!
celé vláknouz se tesim, jeste jednou diky, uz dlouho me neco (J) takhle nenadchlo
Pridavam sa,
celé vláknoparadna vec, paradne popisane ;) Zda sa mi to, alebo sucasne programovacie jazyky k tomu istemu speju opacne (lamda operatory, foreach etc.)? Napr. v C#:
new int[] { 1, 2, 3, 4, 5 }.Sum(x ⇒ x * 2); // = 30
A myslim, ze podobny konstrukt ma aj Java. Je to ukecanejsie a urcite znovaobjavenie teplej vody, ale z toho vyplyva ze su to uzitocne a vyuzivane veci :)
Taky se libi!
celé vláknoNo je to velmi zajimave, rozhodne! Ta elegance, s jakou lze najit min, max, prumer, proste vylozene citim, ze tenhle jazyk je pro praci ve vice dimenzich skutecne jedinecny. Zajimalo by mne, jak vypocitat treba determinant matice, je na to primitivni funkce ? Zpusobi pouziti operatoru „:“ (nemohu najit ten znak, co je kombinaci dvojtecky a minusu :-) ) na matici automaticky inverzi cele matice ? Je nejaka doporucena verze APL pro Linux ? Nevyzaduji slozite IDE, ale preci jen kvuli tem symbolum vi v consoli asi nepujde :-(.
Zdravi Pavel
Re: Taky se libi!
celé vláknoMísto APL bych v dnešní době spíše doporučil J od stejného autora a nemusíte si pořizovat novou klávesnici ;-)
Re: Taky se libi!
celé vláknoDobry den, na inverzi matic lze pouzit operator s Unikodem 2339 (hexa). Jako IDE pro Linux existuje z OS programu napriklad A+ zalozene na Emacsu (takze jako vimar asi mit radost moc nebudete, ale snad to jde zkombinovat s Viperem) nebo z ne-OS programu pak APLX Personal Edition (http://www.microapl.co.uk/…pe_form.html), to mi pripadne dobre (dalsi IDE pro APL lze rozjet pod Wine).
Fortran: programovani bez smycek
celé vláknoTak uz je me jasne, odkud vitr vane. Rikalo se, ze implementace poli ve Fortranu je prevzata z neceho jineho. Cili asi to bylo z APL. Ty konstrukce jsou uplne totozne, vyjma samozrejme tech komplexnejsich operatoru, ktere jsou implementovane pres funkce. Napriklad:
integer, dimension(10) :: pole pole = 1 write(*,*) sum(pole(1:5))
Puvodne jsem myslel, ze to bylo z Matlabu, ovsem je mozne, ze ani u toho to nebylo uplne puvodni…
Re: Fortran: programovani bez smycek
celé vláknoA co je tohle za fortran ? Ten, co jsme pouzivali jeste na Tesle 200 na Karlaku v 80. letech zadne takove konstrukce nemel, ani tu deklaraci s dvema dvojteckami, delalo se to tam jinak… Takze si myslim, ze v puvodnim Fortranu nic takoveho nebylo…
Zdravi Pavel
Re: Fortran: programovani bez smycek
celé vláknoNebylo.
Programovaci jazyky se holt vyviji a meni se. Soucasna podoba Fortranu se od te historicke dosti lisi. Snad jen prijemna, jednoducha syntaxe a nazev je spolecny.
Jeste by mozna stalo za to zminit, ze prave „vektorovy“ zpusob zapisu je naprosto idealni na paralelizaci vypoctu, ktera se urcite bude cim dal tim vic uplatnovat. Dobry prekladac Fortranu tak je schopen starsi programy bez jakychkoli manualnich uprav nalezite zrychlit.
Re: Fortran: programovani bez smycek
celé vláknoTaky me to hned napadlo, jak jsem si to cetl :) … co se tyce Matlabu, tak Matlab to prave prevzal z Fortranu (a Fortran tedy asi z APL), a to diky tomu, ze velka cast Matlabu byla (a drobnejsi casti stale jsou) ve Fortranu programovana.
operatory
celé vláknotohle ma snad kazdy rozumejsi jazyk ne? viz. priklad z haskellu:
Hugs> foldl (+) 0 [1,2,3,4]
10
Hugs> zipWith (*) [1,2,3,4] [4,3,2,1]
[4,6,6,4]
resp. funkce vyssiho radu, ktere toto umoznuji
logická chybka
celé vlákno„(jinými slovy – operátor je uplatňován na nejnižší dimenzi, tj. sloupcích):“
Předpokládám, že nejnižší dimenze je řádek (a v příkladu to vrací součty řádků)
Opravte mne, pokud se pletu
slices v pythonu
celé vláknoTak už vím, kde se v pythonu vzala syntaxe slices a[1::3], kterou pak velmi dobře využívá numpy :-)

