FAQ
- Vilken scheme ska man köra?
- Jag tycker att chicken och gauche är de bästa när man ska göra riktiga program. Men till BSE? och freetalk? använder man guile och till GIMP (script-fu) använder man siod. Bra att vara slängd i lite olika m.a.o.
- Varför är lisp det bästa språket?
- För att man skriver in syntaxträden direkt med parenteser, och för att man kan göra om kod och data lätt mellan varandra.
- Vad är skillnaden mellan CL och Scheme?
- Med scheme har man gjort en medveten ansträngning att plocka bort så mycket crackrock som möjligt. Det finns lite kvar men mycket mindre. CL gjordes för att passa så många gamla lisprävar och lispföretag som möjligt. Det händer mycket spännande i CL-världen just nu så om man står ut med cracket så är det bara att köra. Obs, det finns många som tycker cracket är skönt. Det är inte så konstigt, annars vore det ju inte crackrock.
Så här är det
En lista som ska köra:
(print "hello " "world")
- den här listan kör proceduren print med argumenten »hello " och »world«
En lista som bara ska vara (en lista med data):
(quote (print "hello world))
En kortform för detta:
'(print "hello world")
- Notera att det bara är ett citattecken. Välj själv om detta är crackrock eller bara fin »less is more«.
Ok, nu blir det hårt:
(print (list-ref '(print "hello world") 1))
- Man kan läsa inifrån och ut om man vill:
'(print "hello world")
- en lista med data (notera citattecknet!) som består av symbolen print och teckensträcken »hello world«.
(list-ref '(print "hello world") 1)
ett funktionsanrop som kör list-ref med en lista och en etta.
Vad gör list-ref? Den tar emot en lista och en siffra, och spottar ut det listelementet som motsvarar siffran. Men den börjar räkna på noll! Så i det här fallet är print noll, och »hello world« 1. så den spottar ut »hello world«.
- NTS: skriv om eval, define, lambda, let (fyra olika), require-extension, srfi-1, r5rs, special forms och macron, call/cc.
Länkar
- Index över vad som ingår i standarden
- Index över vad som chicken har lagt till (en del av det finns i andra scheme:ar också)
- srfi-1, ett bra listbibliotek
- srfi-13, ett grundläggande strängbibliotek
- srfi-42, ett säreget bibliotek för loopar
- andra srfi:er