Na co všechno je dobrý LISP?

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #315 kdy: 05. 04. 2011, 19:49:08 »
Jestli tomu dobře rozumím, tak prakticky jediná výtka proti Pythonu, která zůstala, je Guido nemá rád FP. Když tedy zdvořile opomenu to, že v jednom odstavci autor tvrdí,

Nemuzu diskutovat za autora, akorat si myslim, ze je to zajimavy odkaz (predevsim diskuse u nej) - proto jsem to sem take vlozil.


Re: Na co všechno je dobrý LISP?
« Odpověď #316 kdy: 05. 04. 2011, 19:56:51 »
V jiných jazycích to jde? Pokud vím, umí to například Erlang.

To snad umí jakýkoli intepretovaný jazyk, ne?

Program

Re: Na co všechno je dobrý LISP?
« Odpověď #317 kdy: 05. 04. 2011, 19:59:01 »
Diky. Presne to jsem chtel vedet. :) a v programech typu CAD je to to same, nebo tam je to jinak?

Pokud vím, tak LISP používal AutoCAD a osobně jsem v tom nedělal, ale čekal bych stejný princip. Jazyk je jenom nástroj. Co jsem teď zběžně našel:http://www.jtbworld.com/lisp.htm

Jinak tak nějak neformálně, kamarád třeba použil scheme, jako jazyk do jednoho celulárního automatu. Ono LISP a obvzlášť scheme má opravdu malý interpret a navíc je oproti třeba pythonu docela rychlý (právě pro svoji jednoduchost) a na druhou stranu, není to write-only jazyk, jako třeba forth :-) Dále se zkuste mrknout třeba sem: http://www.gigamonkeys.com/book/ ať si uděláte obrázek o tom, jak se v LISPu píše a v čem může být zajímavý.

Inkvizitor

Re: Na co všechno je dobrý LISP?
« Odpověď #318 kdy: 05. 04. 2011, 20:04:16 »
Pokud vím, tak LISP používal AutoCAD a osobně jsem v tom nedělal, ale čekal bych stejný princip. Jazyk je jenom nástroj. Co jsem teď zběžně našel:http://www.jtbworld.com/lisp.htm

JJ, to API v AutoLispu bylo v zásadě ekvivalentní API v C (ADS library). Pro zajímavost, někdo udělal podobnou podporu skriptování v Pythonu: http://pyacad.sourceforge.net/

Inkvizitor

Re: Na co všechno je dobrý LISP?
« Odpověď #319 kdy: 05. 04. 2011, 20:05:52 »
Jestli tomu dobře rozumím, tak prakticky jediná výtka proti Pythonu, která zůstala, je Guido nemá rád FP. Když tedy zdvořile opomenu to, že v jednom odstavci autor tvrdí,

Nemuzu diskutovat za autora, akorat si myslim, ze je to zajimavy odkaz (predevsim diskuse u nej) - proto jsem to sem take vlozil.

Jo, diskusi jsem přečetl, byla zajímavá; nic proti.


Kit

Re: Na co všechno je dobrý LISP?
« Odpověď #320 kdy: 05. 04. 2011, 20:07:19 »
V jiných jazycích to jde? Pokud vím, umí to například Erlang.

To snad umí jakýkoli intepretovaný jazyk, ne?
Už jsi zkusil vyměnit funkci běžícímu programu? Každý interpretr to nepřekousne. Kromě toho tuto funkci zvládá Lisp atomicky - je možné tuto funkci změnit i v okamžiku, kdy je v ní proces.

blizz

Re: Na co všechno je dobrý LISP?
« Odpověď #321 kdy: 05. 04. 2011, 20:10:41 »
Tak to je hodně zlé, když programátoři dnes už mají potíže i s formální logikou...

To teda je. Ale v tvojich plkoch by som logiku nehľadal.

Re: Na co všechno je dobrý LISP?
« Odpověď #322 kdy: 05. 04. 2011, 20:15:27 »
Kromě toho tuto funkci zvládá Lisp atomicky - je možné tuto funkci změnit i v okamžiku, kdy je v ní proces.

To jo, to je dobrý.

(sorry, už mě to vážně nebaví)

Re: Na co všechno je dobrý LISP?
« Odpověď #323 kdy: 05. 04. 2011, 20:16:00 »
ad patter matchin
   hledal jsem knihovnu, která by mi umožňovala psát funkce podobně jako v erlang, nic uspokojivého jsem nenasel...

Kód: [Vybrat]
factorial(N) when N > 0 ->
N * factorial(N - 1);
factorial(0) -> 1.

ad mrtvý
   máme tu clojure, takže si nemyslím že by byl lisp mrtvý...
   krom toho je tu ještě scheme, a například takový chicken je docela živý... http://www.call-cc.org/ http://wiki.call-cc.org/chicken-projects/egg-index-4.html

Pro inspiraci například sorce2sorce translator javascriptu nebo ruby je při použití sbcl rychlejší než interpreti těchto jazyků...  ;D

Viky

Re: Na co všechno je dobrý LISP?
« Odpověď #324 kdy: 05. 04. 2011, 20:31:39 »
Tak to je hodně zlé, když programátoři dnes už mají potíže i s formální logikou...

To teda je. Ale v tvojich plkoch by som logiku nehľadal.

Teď jsi mi to fakt nandal! :)

Inkvizitor

Re: Na co všechno je dobrý LISP?
« Odpověď #325 kdy: 05. 04. 2011, 21:11:18 »
Už jsi zkusil vyměnit funkci běžícímu programu? Každý interpretr to nepřekousne. Kromě toho tuto funkci zvládá Lisp atomicky - je možné tuto funkci změnit i v okamžiku, kdy je v ní proces.

Tak tohle bych považoval ještě za ten nejmenší problém. Objekt, který obsahuje kód funkce, leží někde na haldě a slovník symbolů na něj odkazuje. Objektu je nastaven příznak (zvedne se čítač), když je funkce vykonávána. V prvním vhodném okamžiku se slovník přesměruje na novou funkci a je vymalováno. Co se ale stane s funkcemi vyšších řádů, případně se změnou typu očekávaných parametrů? Co se stane se stavem, který může v nejhorším případě pořád cirkulovat někde v programu i po několika hot swapech? Bojím se, že přehnaná dynamičnost smrdí docela velikým průšvihem.

Každopádně bych řekl, že schopnost hot swapu není dána inherentně jazykem, ale musí ho umět především virtuální stroj. Pokud vím, umí to třeba i JVM. V Pythonu by bylo třeba to pořešit explicitně (reload modulu), ale představit si to dokážu.

Inkvizitor

Re: Na co všechno je dobrý LISP?
« Odpověď #326 kdy: 05. 04. 2011, 21:16:57 »
ad patter matchin
   hledal jsem knihovnu, která by mi umožňovala psát funkce podobně jako v erlang, nic uspokojivého jsem nenasel...

Kód: [Vybrat]
factorial(N) when N > 0 ->
N * factorial(N - 1);
factorial(0) -> 1.

Tenhle příklad je ještě v pohodě, to by zvládnul i cond. Hlavní sílu pattern matchingu vidím ve svazování hodnot se jmény (x:xs) pro seznam v Haskellu apod., @ patternech atd. Lisp naštěstí nemá algebraické typy, takže odpadají argumenty typu tahání vnitřků z ADT apod. Tohle je věc, která mi u Lispu chybí docela dost.

JS

Re: Na co všechno je dobrý LISP?
« Odpověď #327 kdy: 05. 04. 2011, 21:28:53 »
Tenhle příklad je ještě v pohodě, to by zvládnul i cond. Hlavní sílu pattern matchingu vidím ve svazování hodnot se jmény (x:xs) pro seznam v Haskellu apod., @ patternech atd. Lisp naštěstí nemá algebraické typy, takže odpadají argumenty typu tahání vnitřků z ADT apod. Tohle je věc, která mi u Lispu chybí docela dost.

Myslis neco jako destructuring-bind? Jinak v knizce On Lisp jsou popsane ruzne typy pattern matchingu a destrukturovani, jestli je to silne jako Haskell netusim.

Re: Na co všechno je dobrý LISP?
« Odpověď #328 kdy: 05. 04. 2011, 21:30:02 »
Haskell? Jsem rád, že tu je někdo, kdo my poradí lamerskými dotazy až se  začnu učit haskell...  ;D
Erlang mě přivedl k funkcionálnímu programování, ale jednak není čistě funkcionální, a jednak na desktopové aplikace se zrovna moc nehodí...

Inkvizitor

Re: Na co všechno je dobrý LISP?
« Odpověď #329 kdy: 05. 04. 2011, 21:51:48 »
Myslis neco jako destructuring-bind? Jinak v knizce On Lisp jsou popsane ruzne typy pattern matchingu a destrukturovani, jestli je to silne jako Haskell netusim.

Jo, destructuring-bind dělá něco takového. Ale poradí si třeba s něčím takovým (předpokládám, že ten kód je poměrně pochopitelný)?

Kód: [Vybrat]
matchTest = matchTest' [1, 2, 3, 4, 5]
        where
                matchTest' []           = 0
                matchTest' [x]          = x
                matchTest' s@(x:xs)     = x * (length s) * matchTest' xs