Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
'(Programovací (cons 'jazyk 'Scheme))

pozortucnak
pozortucnak (neregistrovaný) ---.upce.cz
15. 4. 2010 6:59 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Tak jsem se dočkal, díky…

Chtěl jsem se učit scheme, ale jsem na pochybách, zda bych se neměl rovnou začít učit lisp. Přeci jenom, lisp je rozšířenější, existuje kvalitní kompilátor sbcl, je k dispozici více knihoven…

Nickname
Nickname (neregistrovaný) 194.213.51.---
15. 4. 2010 13:39 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Lisp je o něco rozšířenější, nicméně v Scheme se IMHO programuje pohodlněji a vlastní i cizí kód se líp čte.
Scheme má taky špičkové kompilátory/in­terpretry jako Gambit, Chicken nebo Gauche. Např. z Gambit-C leze efektivnější kód než ze SBCL co do rychlosti běhu a paměťových nároků.

Problémem Scheme oproti Common Lispu a jiným „velkým“ jazykům jsou samozřejmě základní knihovny, resp. oblasti praktického programování kterou pokrývají.

pozortucnak
pozortucnak (neregistrovaný) ---.142.broadband4.iol.cz
15. 4. 2010 17:48 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Pořád nechápu jaký je rozdíl mezi scheme a lisp.

Pro scheme není ani pořádné gui, navíc většina scheme knihoven je vázána s konkrétní implementací scheme…

atarist
atarist (neregistrovaný) ---.redhat.com
15. 4. 2010 18:05 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

asi nejvetsi rozdil mezi nekterymi Lispy a Scheme je prave v dynamickem vs lexikalnim scopingu, par minoritnich rozdilu tam navic je taky, ale nejsou tak velke (dvoji vs jeden namespace, zminovany rozdil v chapani prazdnich seznamu). Pokud mate rad minimalisticky navrzene jazyky, je Scheme celkem jasna volba, pokud naopak hledate neco pro vyvoj vetsich aplikaci, mozna bych sel do CL.

V. H.
V. H. (neregistrovaný) ---.244.broadband7.iol.cz
18. 4. 2010 20:20 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Pro Scheme není pořádné GUI? A DrScheme (resp. PLT Scheme) je co? www.plt-scheme.org

pozortucnak
pozortucnak (neregistrovaný) ---.142.broadband4.iol.cz
18. 4. 2010 22:09 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

jj ale je to pouze pro plt-scheme, a plt-scheme se nekompiluje do nativního kódu…

Ale na druhou stranu tu mám gtk-server… a zakomponovat tcl/tk – wish by také nemuselo být obtížné… to podporuje např chicken…

Ale stejně, lisp je na tom lépe.

Ps: Nevíte o knihovně umožnující v lispu prototype-based programování?

V. H.
V. H. (neregistrovaný) ---.244.broadband7.iol.cz
18. 4. 2010 22:47 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

DrScheme podporuje asi 20 dialektů, mimo jiné i R5RS.

Karol
Karol (neregistrovaný) ---.adsl.slovanet.sk
19. 4. 2010 9:11 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Ps: Nevíte o knihovně umožnující v lispu prototype-based programování?

http://redmine.sykosomatic.org/projects/show/sheeple

pozortucnak
pozortucnak (neregistrovaný) ---.142.broadband4.iol.cz
15. 4. 2010 19:51 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Asi plácnu blbost ale nešlo by pomocí maker udělat z lispu scheme?

Karol
Karol (neregistrovaný) ---.chello.sk
15. 4. 2010 21:44 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Ide to. Na kontinuacie pouzijes kniznicu (napr. http://common-lisp.net/project/cl-cont/ ) a potom spravis code walker, ktory si uklada pri prechadzani kodu lexikalne bindingy. Pokial najdes takuto premennu v na zaciatku zoznamu (ked nie je quotovany) strcis tam ‚funcall‘ a mas scheme :)

bedna
bedna (neregistrovaný) 213.191.125.---
16. 4. 2010 7:23 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

No, jde to docela jednodušeji s využitím primitiv… To same zasobnikovy jazyk. Na UPOLu vas to čeká ve druháku. ;-)

Pavel Tišnovský aura:98
19. 4. 2010 8:36 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Ten zasobnikovy jazyk by me zajimal. Jsou o tom nekde na netu informace?

deda.jabko
deda.jabko (neregistrovaný) 194.212.22.---
19. 4. 2010 12:45 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

nevim jestli to odpovida tomu, co se aktualne uci na UPOL. nicmene, upravenou variantu toho zasobnikoveho modelu pouzivame v schemiku (implicitne paralelnim dialektu schemu). pokud byste mel zajem o podrobnosti, napiste mi na email (je naspodku tech stranek)

Timy _ aura:57
20. 4. 2010 2:10 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno
Timy _ aura:57
20. 4. 2010 2:14 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

A případně ještě na http://phoenix.inf.upol.cz/esf/materialy.htm skripta Paradigmata programování 2, díl A/B od dua Vychodil/Konečný.

JS
JS (neregistrovaný) ---.net.upc.cz
15. 4. 2010 20:52 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Ja jsem sel do Common Lispu, da se to celkem vydrzet, ale Scheme moc neznam. Z toho co pisi ostatni me prijde, ze Common Lisp ma pragmatictejsi pohled na svet nez Scheme, na ukor elegance (a to je vec, ktera mi velmi vyhovuje treba na Pythonu).

Kdyz ale srovnam Common Lisp s Pythonem, vadi mi na nem oproti Pythonu par veci:
- nedostatek standardnich knihoven (treba co mi dost chybi jsou i takove zakladni veci jako string.split a podobne), ale to muze byt moje neznalost (docela bych uvital stranku ekvivalentu CL a Pythonich knihoven); a tech par co jsem videl, mely dost horsi API oproti Pythonu (coz muze souviset s dalsimi body)
- neobjektovost, z cehoz vyplyva treba dichotomie mezi eql, equal, equalp, nebo spatna podpora hash tabulek a vlastnich struktur ve smyckach
- nema iteratory a generatory, vim ze na to existuji nejaka makra, ale zase, neni to tolik integralni soucast jazyka jako v Pythonu

Pokud vim, nic z toho Scheme moc neresi.

I kdyz s CL koketuji jiz pomerne dlouho, stale se mi prakticke veci lepe pisi v Pythonu.

Karol
Karol (neregistrovaný) ---.chello.sk
15. 4. 2010 21:59 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

string.split → http://www.cliki.net/SPLIT-SEQUENCE

– neobjektovost, z cehoz vyplyva treba dichotomie mezi eql, equal, equalp, nebo spatna podpora hash tabulek a vlastnich struktur ve smyckach

eq, eql, equal, equalp a pod nesuvisi s „objektovostou“ ale s identitou.
eq porovnava ci su 2 objekty jeden a ten isty – btw. v Lispe je VSETKO objekt, vcetne cisiel
eql porovnava cisla
equal porovnava zoznamy
equalp porovnava stromy (tzn – zoznamy/vektory, ale vnoruje sa rekurzivne dovnutra prvkov – je to strukturalna ekvivalencia)

spatna podpora hash tabulek – neviem kde je problem, mozno ti vadi ze Lisp nema „specialnu“ syntax ala table[key]?

Loop → doporucujem nahradit s http://common-lisp.net/project/iterate/

Tiez, http://common-lisp.net/project/alexandria/ by nemala chybat v kazdom Lisp projekte.

Dobra vec je aj http://github.com/ks/X.LET-STAR

JS
JS (neregistrovaný) ---.net.upc.cz
16. 4. 2010 8:03 Nový

Re: '(Programovací (cons 'jazyk 'Scheme))

celé vlákno

Ha, diky. I kdyz stejne mi to pripada trochu rozstristene.

Co se tyce tech eql a tak, proste mi vadi, ze to nejsou genericke funkce. Totez plati i o rade dalsich veci, treba elt atd. Zkratka, ackoliv je v CL vsechno objekt, stale mi prijde, ze OO je tam jenom tam ex-post nasroubovane (narozdil od Pythonu, kde treba len() nebo == nebo + jsou genericke funkce). Ale mozna jsem jen neco nepochopil. A nebo je mozna nejaky snadny zpusob, jak ty funkce rozsirit.

Co se tyce hash tabulek, vadi mi prave tohle – ze na ne nefunguje vetsina funkci pracujicich s posloupnostmi. Ale to asi resi to ITERATE.

Kazdopadne, diky za odkazy, krome tech utilit jsem je neznal, a uzitecnost tech utilit jsem asi pri prvnim cteni podcenil.

pozortucnak
pozortucnak (neregistrovaný) ---.upce.cz
15. 4. 2010 7:19 Nový

CLPython

celé vlákno

K lispu jsem nedávno narazil na CLPython.

CLPython is an open-source implementation of Python written in Common Lisp. With CLPython you can run Python programs in a Lisp environment. Libraries written in Lisp are available to Python code, and Python libraries can be accessed by Lisp code.

Karol
Karol (neregistrovaný) ---.chello.sk
15. 4. 2010 11:36 Nový

Re: CLPython

celé vlákno

Ked sa clovek zabeha v Common Lispe, a zorientuje v knizniciach, tak potreba pouzivat Pythonovske kniznice na prakticku pracu je nulova.

Trm
Trm (neregistrovaný) ---.inf.upol.cz
15. 4. 2010 7:57 Nový

placate nesmysly

celé vlákno

Pane Tisnovsky, mel byste to zabalit. Vase serialy o HW mi pripadaly zajimave, ale to bylo asi tim, ze HW nerozumim. Pokud v nich bylo tolik zavadejicich nesmyslu, jako v tomhle clanku, tak to pekne dekuju. Zvlast s tema rozsahama platnosti jste to teda napsal tak, ze je z toho citit, ze tomu moc nerozumite. Mel byste se radsi drzet svych oblibenych temat a nepsat o vecech, kterym nerozumite.

šachy
šachy (neregistrovaný) 195.113.220.---
15. 4. 2010 10:17 Nový

Re: placate nesmysly

celé vlákno

Konkrétně prosím…nemá smysl nadávat a přitom se nepokusit stav zlepšit.

Tomas Z.
Tomas Z. (neregistrovaný) ---.terminal.cz
15. 4. 2010 8:26 Nový

Scheme versus starší Lispy

celé vlákno

Podstatnější (i když na první pohled možná méně viditelný) rozdíl než #f vs. nil mi přijde lisp 2 vs. lisp 1 (např. http://www.nhplace.com/kent/Papers/Technical-Issues.html)

atarist
atarist (neregistrovaný) ---.redhat.com
15. 4. 2010 18:07 Nový

Re: Scheme versus starší Lispy

celé vlákno

Mas na mysli jeden vs dva jmenne prostory. Abych se priznal, tak jsem nikdy moc nechapal vyhodu dvou jmennych prostoru. Kdysi se to hodne resilo pri vyvoji LOGA (byly i nejake flamewars mezi vazenymi pany profesory :-), ale proc mit vlastne dva namespacy, jen to mate v pripade, ze prasici programator ma dva ruzne objekty pojmenovany stejne :-)

Adam Sloboda aura:93
15. 4. 2010 11:24 Nový

Lexical scoping

celé vlákno

zatímco se v LISPu oblast platnosti proměnných stanovuje dynamicky v čase běhu programu, ve Scheme a v některých implementacích LISPu je oblast platnosti proměnné určena na základě toho, v jakém bloku se proměnná nachází (tato vlastnost jazyka se označuje lexical scope)

Zatiaľ čo toto môže byť pravda pre Elisp, tak Common Lisp používa dynamic scoping iba pre defvar/defparameter a podľa konvencie názov týchto premenných začína a končí hviezdičkou.

Karol
Karol (neregistrovaný) ---.chello.sk
15. 4. 2010 12:54 Nový

Re: Lexical scoping

celé vlákno

A pre tie s (declare (special *variable*))

V. H.
V. H. (neregistrovaný) ---.244.broadband7.iol.cz
18. 4. 2010 20:25 Nový

Knížky

celé vlákno

Seznam literatury a odkazů je snad delší než článek, ale chybí v něm dvě kvalitní knížky dostupné v plném znění na webu (z jedné je přitom použit obrázek):

Structure and Interpretation of Computer Programs http://mitpress.mit.edu/sicp/full-text/book/book.html

a

How to Design Programs http://www.htdp.org/

Pavel Tišnovský aura:98
19. 4. 2010 8:35 Nový

Re: Knížky

celé vlákno

Ja jsem zapomel na SICP? Jejda, tak to se omlouvam, ta knizka mela byt hned na prvnim miste v seznamu literatury kvuli jeji dulezitosti.

Zasílat nově přidané příspěvky e-mailem