Na co všechno je dobrý LISP?

Ondřej

Re: Na co všechno je dobrý LISP?
« Odpověď #105 kdy: 30. 03. 2011, 14:20:58 »
@Michal: Hlavní rozdíl asi bude ten, že makra v Lispu kód hodně zpřehledňují, kdežto úlety s evalem a programování ve stringu kód hodně znepřehledňuje. Nechce se mi zkoumat, jestli jsem schopný napsat makro, které nepůjde žádným způsobem simulovat v evalu, to ať tady napíše někdo jiný. Ale i kdyby šlo evalem napsat vše, co lze napsat makrem, tak to pro mě není použitelný ekvivalent k makrům, protože použití evalu je prostě hnusné (z důvodů, které jsem už napsal). Souhlasím tedy s poslední větou od JS: "Otazka je, jak bude vypadat ten zapis." Já si samozřejmě v jakémkoliv jazyce můžu napsat interpret jakéhokoliv jiného jazyka, ale tak o tom to není, že jo.


Re: Na co všechno je dobrý LISP?
« Odpověď #106 kdy: 30. 03. 2011, 14:26:07 »
Já si samozřejmě v jakémkoliv jazyce můžu napsat interpret jakéhokoliv jiného jazyka, ale tak o tom to není, že jo.

Přesně o tomhletom to ale právě všechno JE. Tahle přihlouplá debata začala tím, že tady lispeři tvrdili, že lisp má jakousi tajemnou SÍLU. Horkotěžko jsme se dostali k od začátku zjevnému faktu, že žádnou tajemnou sílu nemá a že teda jde jenom o nějakou eleganci kódu. Proti tomu nic nemám. Ať si má za elegantní kdo chce co chce...

nm - novomente

Re: Na co všechno je dobrý LISP?
« Odpověď #107 kdy: 30. 03. 2011, 14:32:30 »
Kdyz uz jsme u tech knizek. Chtel jsem se zeptat, jestli, krome zde jiz uvedenych knizek, by zde nekdo nemohl uvest dalsi dobre knizky o LISPu, nebo vyukove kurzy ci tutorialy. A to pokud mozno v cestine. A kdyz ne v cestine, tak spon teda v english.

Neco jsem teda nasel na wikipedii a nebo pri googleni. Ale stejne vsechno tam neni a urcite mi nejake vyborne zdroje unikaji.

Jo a treba sem dejte i nejake odkazy na zajimave stranky o LISPu (cesky i english).

Rad bych si lisp osahal trochu vic, nez jsem mu venoval (ty 3 dny).  :)

Ondřej

Re: Na co všechno je dobrý LISP?
« Odpověď #108 kdy: 30. 03. 2011, 14:40:10 »
Miroslav: No on asi nikdo nečekal argument typu „no ale v Pythonu si můžu napsat interpret Lispu, takže Lisp nic navíc nemá“.

novomente: http://phoenix.inf.upol.cz/esf/materialy.htm hledej „Paradigmata programování 1, 2“ Je to o Scheme, ale to je skoro jedno. Další materiály jsou tady: http://krupka.inf.upol.cz/2010Z/PP3.html (Doplnění základní výbavy Common Lispu) a tady http://krupka.inf.upol.cz/2008L/ (Od Scheme ke Common Lispu)


JS

Re: Na co všechno je dobrý LISP?
« Odpověď #109 kdy: 30. 03. 2011, 14:41:42 »
Aha. A pomocí evalu se nedá boilerplate kód generovat. Proto eval není makro. Hm. Tak jo.

Teoreticky ano, ale moc prakticke to neni. Lispova makra prakticka jsou (uz jen kvuli backquote). Znovu vam rikam, prectete si o tom neco!

No tak když tady někdo machruje s tím, že něco v lispu napíše na pět řádků a já mu ukážu, že v pythonu je to taky na pět řádků, tak to potom zjevně není otázka toho, jak bude vypadat kód, ale otázka toho, že někdo má prostě neutuchající potřebu machrovat...

Ja Python umim celkem slusne, byl to muj hlavni a nejoblibenejsi jazyk asi 10 let, nez jsem zacal ucit (pred 2 lety) Common Lisp. V Pythonu napisete veci na 5 radku, protoze ma velmi dobre navrzene vestavene typy, operatory a funkce. To Lisp v mnoha smerech tak dobre navrzenou zakladni knihovnu nema.

Ovsem existuji zkratka pripady, ktere napisete v Lispu na 5 radku a v Pythonu na mnohem vic, protoze v Lispu muzete definovat makra. Proste, Lispova makra umoznuji ten kod zkratit vic nez o konstantu.

A mel byste tomu zatim verit, protoze narozdil ode me, ktery muze Common Lisp a Python porovnat, vy to srovnani udelat nemuzete, dokud si o Lispu trochu vic nezjistite.


Re: Na co všechno je dobrý LISP?
« Odpověď #110 kdy: 30. 03. 2011, 14:48:51 »
Ja Python umim celkem slusne, byl to muj hlavni a nejoblibenejsi jazyk asi 10 let, nez jsem zacal ucit (pred 2 lety) Common Lisp.

Učíte CL a neumíte předvést aspoň tři příklady něčeho skutečně praktického (viz diskuse co je praktické výš)?

Nebo umíte, ale snadnější je pro vás napsat "přečtěte si to jinde"? Tak to mám pro vás bezva tip: přijďte jenom na první přednášku a řekněte studentům "Nemá smysl vám říkat něco, co už je napsáno. Nastudujte si to sami." Gratuluju univerzitám k takovým zaměstnancům!

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #111 kdy: 30. 03. 2011, 14:50:12 »
Ja Python umim celkem slusne, byl to muj hlavni a nejoblibenejsi jazyk asi 10 let, nez jsem zacal ucit (pred 2 lety) Common Lisp.

Učíte CL a neumíte předvést aspoň tři příklady něčeho skutečně praktického (viz diskuse co je praktické výš)?

Klidek, jen tam chybi "se" (zacal ucit).

Re: Na co všechno je dobrý LISP?
« Odpověď #112 kdy: 30. 03. 2011, 14:56:46 »
Klidek, jen tam chybi "se" (zacal ucit).

To je první potěšující zjištění tohoto tématu: že takovíhle povýšení rozumbradové na VŠ neučí...

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #113 kdy: 30. 03. 2011, 14:59:37 »
To je první potěšující zjištění tohoto tématu: že takovíhle povýšení rozumbradové na VŠ neučí...

To jste spis vy, vy se hadate o necem, co neznate. :-)

Re: Na co všechno je dobrý LISP?
« Odpověď #114 kdy: 30. 03. 2011, 15:10:49 »
To jste spis vy, vy se hadate o necem, co neznate. :-)

Já se o ničem nehádám. Zaslechl jsem tady, že Lisp je jazyk pro opravdové chlapy a že má obrovskou sílu, protože umí něco, co jiné jazyky ne. Když jsem se zeptal co to je, bylo mi odpovězeno "makra". Když jsem se zeptal, co umí makra, co by jiný jazyk nezvládl, bylo mi řečeno, že to se pitomcům špatně vysvětluje. Poté jsme se složitě dostali k tomu, že makra dělají principielně totéž co eval (exec), akorát se to zapisuje daleko hezčeji. A jestli nechápu, že je to narozdíl od evalu hezké a praktické, tak bych si o tom měl něco přečíst, protože jsem pitomec, který se hádá o něčem, co nezná.

Uf. Tak teda dík za debatu, aspoň jsem si na vlastní kůži vyzkoušel, proč Jehovista psal o tom, že lisp už slouží jenom k tomu, aby se asociální živly plácaly po ramenech. No, i to je cenná zkušenost - je potřeba to vzít pozitivně.

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #115 kdy: 30. 03. 2011, 15:26:43 »
Já se o ničem nehádám. Zaslechl jsem tady, že Lisp je jazyk pro opravdové chlapy a že má obrovskou sílu, protože umí něco, co jiné jazyky ne. Když jsem se zeptal co to je, bylo mi odpovězeno "makra". Když jsem se zeptal, co umí makra, co by jiný jazyk nezvládl, bylo mi řečeno, že to se pitomcům špatně vysvětluje. Poté jsme se složitě dostali k tomu, že makra dělají principielně totéž co eval (exec), akorát se to zapisuje daleko hezčeji. A jestli nechápu, že je to narozdíl od evalu hezké a praktické, tak bych si o tom měl něco přečíst, protože jsem pitomec, který se hádá o něčem, co nezná.

A jak vam to mam ukazat? Kdyz vam ukazu kod v Lispu, nebudete mu rozumet (sam jste si stezoval, kdyz to bedna tak udelal). To bych musel vysvetlit, co co znamena, a to uz udelali jini lide prede mnou (daleko) lepe, proto odkaz na tutorialy.

A kdyz vam dam kratky priklad, budete kontrovat, ze to neni potreba, protoze na tom kratkem priklade to udelate v Pythonu take. Samozrejme. Stejne jako algoritmus se slozitosti 1000*n^2 bude pro mala n pomalejsi nez algoritmus se slozitosti 2^n.

Krome toho, ja proste o lidech predpokladam, ze jsou dospeli a tedy bud vedi, a pokud nevedi, dokazi si aspon trochu veci nastudovat, a pokud nejsou schopni toto, muzou se zeptat. Myslim, ze bych se jich opacnym predpokladem spise dotkl.

Fakt by to chtelo trochu soudnosti. Nemam zadnou povinnost vam tu neco vysvetlovat. Sam jste videl, ze kdyz se me nekdo slusne zeptal, co jsou restarty, vysvetleni jsem mu podal.

Re: Na co všechno je dobrý LISP?
« Odpověď #116 kdy: 30. 03. 2011, 15:41:10 »
A jak vam to mam ukazat? Kdyz vam ukazu kod v Lispu, nebudete mu rozumet (sam jste si stezoval, kdyz to bedna tak udelal). To bych musel vysvetlit, co co znamena, a to uz udelali jini lide prede mnou (daleko) lepe, proto odkaz na tutorialy.

Vy nerozumíte slovu "příklad"? To se slovně podá zadání a potom se ukáže řešení v jednom jazyce a v druhém, jednou větou se napíše, v čem je zásadní rozdíl a slovně se zhodnotí, které řešení je lepší v čem, např. tedy takto:

Problém: vypočítat a vypsat 1+1
Lisp: (print (+ 1 1))
Python: print 1+1
Hlavní rozdíl je v tom, že lisp používá plně uzávorkovanou prefixovou notaci, která je prostě boží a kdo to nechápe, je idiot
Diskuse: Lispovská implementace běží na stejném hardware stokrát rychleji než libovolná implementace v jakémkoli jiném jazyce včetně assembleru a strojáku, protože lisp je prostě boží a jeho běh urychluje tajemná hermeneutická síla zvaná též Schwartz. Lispová implementace se také vyznačuje tím, že program jsou data, takže není potřeba žádný parser a papír s napsaným algoritmem stačí položit na case, čímž se program magicky spustí.

Ale víte co, já už to ani nechci slyšet. Už jste mě otrávili dostatečně. Takže ani nemusíte psát tu reakci, kterou očekávám: "přečtěte si to v knize Jak jsem měl orgasmus nad Lispem".

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #117 kdy: 30. 03. 2011, 16:03:59 »
Vy nerozumíte slovu "příklad"? To se slovně podá zadání a potom se ukáže řešení v jednom jazyce a v druhém, jednou větou se napíše, v čem je zásadní rozdíl a slovně se zhodnotí, které řešení je lepší v čem, např. tedy takto:

Tezko vam muzu ukazat makra v jazyce, ktery je nema. Proto je tezke najit priklad, ktery by vam vyhovoval. Je to asi jako snazit se vysvetlit takto OOP - nejdriv musite chapat, co je objekt.

Re: Na co všechno je dobrý LISP?
« Odpověď #118 kdy: 30. 03. 2011, 16:10:07 »
Je to asi jako snazit se vysvetlit takto OOP - nejdriv musite chapat, co je objekt.

Rozumím. Nechápu, co jsou to makra, protože jste se tak rozhodl. Na téhle rovině se nebavím. Takže definitivně HOWGH.

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #119 kdy: 30. 03. 2011, 16:13:53 »
Rozumím. Nechápu, co jsou to makra, protože jste se tak rozhodl. Na téhle rovině se nebavím. Takže definitivně HOWGH.

A zase ne. :-) Proste, podobne jako OOP, neda se to vysvetlit jednoduchym prikladem (nekomu, kdo programuje proceduralne). Je to potreba trosku procist. A fakt, kdyz byste se alespon trochu zacetl do odkazovane literatury, ktera padla, zjistite, ze tech jednoduchych i slozitejsich prikladu je tam popsano hafo.