Discussion:
[Lisp] Vanlig Lis nu ute...
Ingvar
2006-04-12 09:09:55 UTC
Permalink
"Vanlig Lisp 0.1

Välkommen till Vanlig Lisp, ett standardiserat programmeringsspråk.
Officiellt släppdatum är 2006-04-01 och ASDF-paketerad kod kan hämtas
från <URI:http://src.hexapodia.net/vanlig.tar.gz>."

Det var EGENTLIGEN menat som aprilskämt förra året, men hann inte bli
klart, så jag tänkte "OK, släpp 2006 borde funka", men jag hann inte
ens igenom alla symboler på C (eller D eller vad det nu var).

Men det var småskoj och jag lärde mig en hel del om de inre bitarna av
(i alla fall) SBCL. Det finns lite halvintressant makrologi också.

//Ingvar
henrik hjelte
2006-04-12 10:16:55 UTC
Permalink
Mycket lovvärt initativ. Här kommer en fråga som jag antar hör till de
vanliga frågorna: Vad är det för egentligen för skillnad på kartbil och
kartburk?

/Henrik Hjelte
Post by Ingvar
"Vanlig Lisp 0.1
Välkommen till Vanlig Lisp, ett standardiserat programmeringsspråk.
Officiellt släppdatum är 2006-04-01 och ASDF-paketerad kod kan hämtas
från <URI:http://src.hexapodia.net/vanlig.tar.gz>."
Det var EGENTLIGEN menat som aprilskämt förra året, men hann inte bli
klart, så jag tänkte "OK, släpp 2006 borde funka", men jag hann inte
ens igenom alla symboler på C (eller D eller vad det nu var).
Men det var småskoj och jag lärde mig en hel del om de inre bitarna av
(i alla fall) SBCL. Det finns lite halvintressant makrologi också.
//Ingvar
_______________________________________________
Lisp mailing list
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp
Ingvar
2006-04-12 11:21:16 UTC
Permalink
Post by henrik hjelte
Mycket lovvärt initativ. Här kommer en fråga som jag antar hör till de
vanliga frågorna: Vad är det för egentligen för skillnad på kartbil och
kartburk?
Ptja, "kartbil" torde vara ett fordon inom karting, helt enkelt "en kart".

En burk arbetar ur sidovagnen av en motorcykel (eller ett segelflytetyg) och
dessa finns inte inom karting. "Kartburk" tycks mig vara en oxymoron. Eller en
burk att stoppa uppknaprad frukt i.

//Ingvar
Elias Mårtenson
2006-04-12 12:52:30 UTC
Permalink
Post by henrik hjelte
Mycket lovvärt initativ. Här kommer en fråga som jag antar hör till de
vanliga frågorna: Vad är det för egentligen för skillnad på kartbil och
kartburk?
(addera-metod) borde väl vara (lägg-till-metod)? Det skulle i så fall
följa den praxis som de flesta översättare av datorprogram följer.

(class-of) borde väl vara (klass-för)?

Dessutom verkar package.lisp vara kodad enligt något som inte är UTF-8.

Elias
Sunnan
2006-04-12 13:20:57 UTC
Permalink
Post by Elias MÃ¥rtenson
Post by henrik hjelte
Mycket lovvärt initativ. Här kommer en fråga som jag antar hör till de
vanliga frågorna: Vad är det för egentligen för skillnad på kartbil och
kartburk?
(addera-metod) borde väl vara (lägg-till-metod)? Det skulle i så fall
följa den praxis som de flesta översättare av datorprogram följer.
(class-of) borde väl vara (klass-för)?
Dessutom verkar package.lisp vara kodad enligt något som inte är UTF-8.
Elias
och kartbil (mapcar) borde vara kartlägga-bilar eller
kartlägga-över-bilar?
blirtokig på denna vansinniga översättning
Elias Mårtenson
2006-04-12 13:35:48 UTC
Permalink
Post by Sunnan
Post by Elias MÃ¥rtenson
Post by henrik hjelte
Mycket lovvärt initativ. Här kommer en fråga som jag antar hör till de
vanliga frågorna: Vad är det för egentligen för skillnad på kartbil och
kartburk?
(addera-metod) borde väl vara (lägg-till-metod)? Det skulle i så fall
följa den praxis som de flesta översättare av datorprogram följer.
(class-of) borde väl vara (klass-för)?
Dessutom verkar package.lisp vara kodad enligt något som inte är UTF-8.
Elias
och kartbil (mapcar) borde vara kartlägga-bilar eller
kartlägga-över-bilar?
blirtokig på denna vansinniga översättning
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
Ingvar
2006-04-12 14:12:50 UTC
Permalink
Post by Elias MÃ¥rtenson
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
"IAR" Innehållet av addressregistret
"IDR" Innehållet av dataregistret

Juh.

//Ingvar
Sunnan
2006-04-12 16:50:27 UTC
Permalink
Post by Ingvar
Post by Elias MÃ¥rtenson
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
"IAR" Innehållet av addressregistret
"IDR" Innehållet av dataregistret
Juh.
ja jag kan inte acceptera huvud/svans för cons-par (konspar?) är inte
alltid listor
Sunnan
Elias Mårtenson
2006-04-13 00:27:43 UTC
Permalink
Post by Sunnan
Post by Ingvar
Post by Elias MÃ¥rtenson
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
"IAR" Innehållet av addressregistret
"IDR" Innehållet av dataregistret
Juh.
ja jag kan inte acceptera huvud/svans för cons-par (konspar?) är inte
alltid listor
Huvud/svans behöver väl inte referera till en lista, eller tänger vi
helt olika nu?

Även i cons-paret (a . b) ser jag a som huvudet och b som svansen.
Björn Lindberg
2006-04-12 23:14:27 UTC
Permalink
Post by Ingvar
Post by Elias MÃ¥rtenson
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
"IAR" Innehållet av addressregistret
"IDR" Innehållet av dataregistret
Juh.
Nej. Adress- respektive dataregistrets innehåll, givetvis. ARI & DRI
således, vilka då utgör prefixversioner av CAR & CDR. Mycket bättre.


Björn
Martin Rydstr|m
2006-04-13 01:50:30 UTC
Permalink
Post by Björn Lindberg
Post by Ingvar
Post by Elias MÃ¥rtenson
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
"IAR" Innehållet av addressregistret
"IDR" Innehållet av dataregistret
Juh.
Nej. Adress- respektive dataregistrets innehåll, givetvis. ARI & DRI
således, vilka då utgör prefixversioner av CAR & CDR. Mycket bättre.
Nu är jag förvånad över att ingen petimäter hoppat in, så jag får väl
axla den uppgiften, då.

Det är ju inte dataregistret, utan nedräkningsregistret!

',mr
--
[Emacs] is written in Lisp, which is the only computer language that is
beautiful. -- Neal Stephenson, _In the Beginning was the Command Line_
Ingvar
2006-04-13 08:03:36 UTC
Permalink
Post by Martin Rydstr|m
Nu är jag förvånad över att ingen petimäter hoppat in, så jag får väl
axla den uppgiften, då.
Det är ju inte dataregistret, utan nedräkningsregistret!
Du menar "dekrementregistret"?

//Ingvar
Björn Lindberg
2006-04-14 00:11:04 UTC
Permalink
Post by Ingvar
Post by Martin Rydstr|m
Nu är jag förvånad över att ingen petimäter hoppat in, så jag får väl
axla den uppgiften, då.
Det är ju inte dataregistret, utan nedräkningsregistret!
Du menar "dekrementregistret"?
Exkrementregistret?


Björn
Sunnan
2006-04-13 08:49:24 UTC
Permalink
Post by Martin Rydstr|m
Post by Björn Lindberg
Post by Ingvar
Post by Elias MÃ¥rtenson
(car) resp. (cdr) borde enligt mig vara (huvud) och (svans)
(alternativt (kropp))
"IAR" Innehållet av addressregistret
"IDR" Innehållet av dataregistret
Juh.
Nej. Adress- respektive dataregistrets innehåll, givetvis. ARI & DRI
således, vilka då utgör prefixversioner av CAR & CDR. Mycket bättre.
Nu är jag förvånad över att ingen petimäter hoppat in, så jag får väl
axla den uppgiften, då.
Det är ju inte dataregistret, utan nedräkningsregistret!
',mr
Så cadr blir anri och cadaar blir anaari. Jättefint!
Ingvar
2006-04-12 14:10:40 UTC
Permalink
Post by Elias MÃ¥rtenson
(addera-metod) borde väl vara (lägg-till-metod)? Det skulle i så fall
följa den praxis som de flesta översättare av datorprogram följer.
Jag velade mellan ADDERA-METOD och LÄGG-TILL-METOD och minns faktiskt inte
varför jag valde det ena och förkastade det andra. Antagligen för att
"addera" är vackrare än "lägga till".
Post by Elias MÃ¥rtenson
(class-of) borde väl vara (klass-för)?
(CLASS-OF <object>)
(KLASS-AV <objekt)) ; borde nog vara (KLASSEN-AV <objekt>)

"Klassen för ..." låter tokfel i mina öron.
Post by Elias MÃ¥rtenson
Dessutom verkar package.lisp vara kodad enligt något som inte är UTF-8.
Jupps, det slank med Latin-1. Jag kan koda om och paketera om, om fokl
faktiskt vill.
Elias Mårtenson
2006-04-12 14:46:47 UTC
Permalink
Post by Ingvar
Post by Elias MÃ¥rtenson
(addera-metod) borde väl vara (lägg-till-metod)? Det skulle i så fall
följa den praxis som de flesta översättare av datorprogram följer.
Jag velade mellan ADDERA-METOD och LÄGG-TILL-METOD och minns
faktiskt inte
varför jag valde det ena och förkastade det andra. Antagligen för att
"addera" är vackrare än "lägga till".
Jag värnar om bra svenska översättningar av programvara, och "addera"
är endast en lämplig översättning då man refererar till den
matematiska aktiviteten.

Det är ännu viktigare nu när jag inte talar svenska varje dag längre...
Post by Ingvar
Post by Elias MÃ¥rtenson
(class-of) borde väl vara (klass-för)?
(CLASS-OF <object>)
(KLASS-AV <objekt)) ; borde nog vara (KLASSEN-AV <objekt>)
"Klassen för ..." låter tokfel i mina öron.
"klassen för denna instans är Foo"
kontra
"klassen av denna instans är Foo"
Post by Ingvar
Post by Elias MÃ¥rtenson
Dessutom verkar package.lisp vara kodad enligt något som inte är UTF-8.
Jupps, det slank med Latin-1. Jag kan koda om och paketera om, om fokl
faktiskt vill.
Du får göra klart det som saknas. :-)

Elias
Lars Brinkhoff
2006-04-12 19:04:26 UTC
Permalink
Post by Elias MÃ¥rtenson
Post by Ingvar
Jag velade mellan ADDERA-METOD och LÄGG-TILL-METOD och minns
faktiskt inte varför jag valde det ena och förkastade det
andra. Antagligen för att "addera" är vackrare än "lägga till".
Jag värnar om bra svenska översättningar av programvara, och
"addera" är endast en lämplig översättning då man refererar till den
matematiska aktiviteten.
Det är ännu viktigare nu när jag inte talar svenska varje dag längre...
Så det är kanske ingen slump att det är ni expatrioter som engagerar
er mest i dessa språkliga krumbukter? :)
Elias Mårtenson
2006-04-13 00:31:12 UTC
Permalink
Post by Lars Brinkhoff
Post by Elias MÃ¥rtenson
Jag värnar om bra svenska översättningar av programvara, och
"addera" är endast en lämplig översättning då man refererar till den
matematiska aktiviteten.
Det är ännu viktigare nu när jag inte talar svenska varje dag längre...
Så det är kanske ingen slump att det är ni expatrioter som engagerar
er mest i dessa språkliga krumbukter? :)
Nu skall det väl sägas att jag har involverat mig i språkliga
krumbukter förut, och nog har Ingvar alltid varit som han är. :-)
Ingvar
2006-04-13 08:02:29 UTC
Permalink
Post by Elias MÃ¥rtenson
Post by Lars Brinkhoff
Post by Elias MÃ¥rtenson
Jag värnar om bra svenska översättningar av programvara, och
"addera" är endast en lämplig översättning då man refererar till den
matematiska aktiviteten.
Det är ännu viktigare nu när jag inte talar svenska varje dag längre...
Så det är kanske ingen slump att det är ni expatrioter som engagerar
er mest i dessa språkliga krumbukter? :)
Nu skall det väl sägas att jag har involverat mig i språkliga
krumbukter förut, och nog har Ingvar alltid varit som han är. :-)
Bara sedan 1971. :)

//Ingvar
Björn Lindberg
2006-04-14 00:16:56 UTC
Permalink
Post by Ingvar
Post by Elias MÃ¥rtenson
(addera-metod) borde väl vara (lägg-till-metod)? Det skulle i så fall
följa den praxis som de flesta översättare av datorprogram följer.
Jag velade mellan ADDERA-METOD och LÄGG-TILL-METOD och minns faktiskt inte
varför jag valde det ena och förkastade det andra. Antagligen för att
"addera" är vackrare än "lägga till".
Post by Elias MÃ¥rtenson
(class-of) borde väl vara (klass-för)?
(CLASS-OF <object>)
(KLASS-AV <objekt)) ; borde nog vara (KLASSEN-AV <objekt>)
"Klassen för ..." låter tokfel i mina öron.
"Klassen av Foo" låter som "familjen av Ragnar", eller "släkten av
Nora", det vill säga som rent nonsens. Liksom det heter Ragnars familj
eller Noras släkt heter det Foos klass. Men i dagligt tal skulle man
tala om att Foo *tillhör* klass si, eller *har* klass så. Mitt förslag
blir därför TILLHÖR-KLASS.


Björn
Sunnan
2006-04-14 10:43:13 UTC
Permalink
Post by Björn Lindberg
"Klassen av Foo" låter som "familjen av Ragnar", eller "släkten av
Nora", det vill säga som rent nonsens. Liksom det heter Ragnars familj
eller Noras släkt heter det Foos klass. Men i dagligt tal skulle man
tala om att Foo *tillhör* klass si, eller *har* klass så. Mitt förslag
blir därför TILLHÖR-KLASS.
AppleScript, som är ett tämligen crackdoftande språk, har genetiv-s med
apostrof.

Sunnan
Björn Lindberg
2006-04-14 12:12:17 UTC
Permalink
Post by Sunnan
Post by Björn Lindberg
"Klassen av Foo" låter som "familjen av Ragnar", eller "släkten av
Nora", det vill säga som rent nonsens. Liksom det heter Ragnars familj
eller Noras släkt heter det Foos klass. Men i dagligt tal skulle man
tala om att Foo *tillhör* klass si, eller *har* klass så. Mitt förslag
blir därför TILLHÖR-KLASS.
AppleScript, som är ett tämligen crackdoftande språk, har genetiv-s med
apostrof.
Jag har ibland tänkt på hur programmeringsspråk skulle ha sett ut om
de främst skapats av, säg, svenskar, tyskar eller finnar istället för
av människor med engelska som modersmål. Men just i Lisp, eller
åtminstone de som finns, som CL, passar denna sorts spetsfundigheter
dåligt. Det skulle ju innebära att man plötsligt och oförhappandes
introducerade en ny symbol, med t.ex. paketkonflikter som möjlig
följd.

Detta sagt så vore det kanske ett intressant experiment att skapa en
ny lispdialekt hade denna sorts språkliga spetsfundigheter. Men, för
att vara i Lisps anda så bör de möjliga språkkonstruktionerna inte
vara en fördefinierad uppsättning, utan gå att bygga ut. Om -s innebär
genitiv, så att "Foos klass" betyder den klass som Foo tillhör, så
skall man även kunna deklarera att 'Foojävel' har en ny innebörd.


Björn
Magnus Henoch
2006-04-14 14:36:05 UTC
Permalink
Post by Björn Lindberg
Jag har ibland tänkt på hur programmeringsspråk skulle ha sett ut om
de främst skapats av, säg, svenskar, tyskar eller finnar istället för
av människor med engelska som modersmål. Men just i Lisp, eller
åtminstone de som finns, som CL, passar denna sorts spetsfundigheter
dåligt. Det skulle ju innebära att man plötsligt och oförhappandes
introducerade en ny symbol, med t.ex. paketkonflikter som möjlig
följd.
Perl kan skrivas på latin:
http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html
Post by Björn Lindberg
Detta sagt så vore det kanske ett intressant experiment att skapa en
ny lispdialekt hade denna sorts språkliga spetsfundigheter. Men, för
att vara i Lisps anda så bör de möjliga språkkonstruktionerna inte
vara en fördefinierad uppsättning, utan gå att bygga ut. Om -s innebär
genitiv, så att "Foos klass" betyder den klass som Foo tillhör, så
skall man även kunna deklarera att 'Foojävel' har en ny innebörd.
Vore intressant...

Magnus
Sunnan
2006-04-14 16:52:12 UTC
Permalink
Post by Magnus Henoch
http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html
Ja Damien Conway är så fin! Undrar om det skrivs mycket program i detta
k13la språk? T.ex. något företag som har Perligata som obligatorisk
standard.
Sunnan
2006-04-14 16:47:04 UTC
Permalink
Post by Björn Lindberg
Detta sagt så vore det kanske ett intressant experiment att skapa en
ny lispdialekt hade denna sorts språkliga spetsfundigheter. Men, för
att vara i Lisps anda så bör de möjliga språkkonstruktionerna inte
vara en fördefinierad uppsättning, utan gå att bygga ut. Om -s innebär
genitiv, så att "Foos klass" betyder den klass som Foo tillhör, så
skall man även kunna deklarera att 'Foojävel' har en ny innebörd.
Arc har funktionalitet för detta (i teorin, skiten är ju vapourware
svjv) och ett av exemplen som följer med i standardbiblioteket är att !
foo betyder negerat foo. caddr osv är också programmatiskt tolkade så
man kan ha oändligt många a och d.
Sunnan
2006-04-14 17:10:30 UTC
Permalink
Så, jag trodde Arc funnits ett tag? Graham har då snackat om det några
år nu.
Ja, men maken till crackrökare får man leta efter! Det är fortfarande en
ångvara.
Q: What is the most annoying thing on usenet and in e-mail?
A: Long signatures and overquoting.
Björn Lindberg
2006-04-16 14:00:34 UTC
Permalink
Post by Sunnan
Post by Björn Lindberg
Detta sagt så vore det kanske ett intressant experiment att skapa en
ny lispdialekt hade denna sorts språkliga spetsfundigheter. Men, för
att vara i Lisps anda så bör de möjliga språkkonstruktionerna inte
vara en fördefinierad uppsättning, utan gå att bygga ut. Om -s innebär
genitiv, så att "Foos klass" betyder den klass som Foo tillhör, så
skall man även kunna deklarera att 'Foojävel' har en ny innebörd.
Arc har funktionalitet för detta (i teorin, skiten är ju vapourware
svjv)
Som du säger, mindre intressant saa länge spraaket inte finns. Inte
för att Arc vore särskilt spännande ens om det fanns...
Post by Sunnan
och ett av exemplen som följer med i standardbiblioteket är att !
foo betyder negerat foo. caddr osv är också programmatiskt tolkade så
man kan ha oändligt många a och d.
Ett enkelt sätt att göra detta vore att utrusta läsaren med ett
standardiserat, utbyggbart gränssnitt till hur symboler läses. Om det
görs redan paa den nivaan har varje saadan ordformande regel även en
s-uttrycksrepresentation.


Björn
Sunnan
2006-04-16 17:52:17 UTC
Permalink
Post by Björn Lindberg
Post by Sunnan
Arc har funktionalitet för detta (i teorin, skiten är ju vapourware
svjv)
Som du säger, mindre intressant saa länge spraaket inte finns. Inte
för att Arc vore särskilt spännande ens om det fanns...
nej precis som common lisp dödstråkigt
Post by Björn Lindberg
Post by Sunnan
och ett av exemplen som följer med i standardbiblioteket är att !
foo betyder negerat foo. caddr osv är också programmatiskt tolkade så
man kan ha oändligt många a och d.
Ett enkelt sätt att göra detta vore att utrusta läsaren med ett
standardiserat, utbyggbart gränssnitt till hur symboler läses. Om det
görs redan paa den nivaan har varje saadan ordformande regel även en
s-uttrycksrepresentation.
Arc, chicken och gauche har alla löst detta på olika sätt.
Björn Lindberg
2006-04-16 22:12:11 UTC
Permalink
Post by Sunnan
Post by Björn Lindberg
Post by Sunnan
Arc har funktionalitet för detta (i teorin, skiten är ju vapourware
svjv)
Som du säger, mindre intressant saa länge spraaket inte finns. Inte
för att Arc vore särskilt spännande ens om det fanns...
nej precis som common lisp dödstråkigt
Mjä, men låt oss inte fördjupa oss i detta.
Post by Sunnan
Post by Björn Lindberg
Post by Sunnan
och ett av exemplen som följer med i standardbiblioteket är att !
foo betyder negerat foo. caddr osv är också programmatiskt tolkade så
man kan ha oändligt många a och d.
Ett enkelt sätt att göra detta vore att utrusta läsaren med ett
standardiserat, utbyggbart gränssnitt till hur symboler läses. Om det
görs redan paa den nivaan har varje saadan ordformande regel även en
s-uttrycksrepresentation.
Arc, chicken och gauche har alla löst detta på olika sätt.
Jaså minsann, jag visste inte att det vi diskuterar var av så stort
allmänt intresse. Skulle du kunna ge exempel på hur då (foos class),
(foos type), (foos name), etc., skulle kunna implementeras i
ovanstående implementationer?


Björn
Sunnan
2006-04-17 09:50:24 UTC
Permalink
Post by Björn Lindberg
Post by Sunnan
nej precis som common lisp dödstråkigt
Mjä, men låt oss inte fördjupa oss i detta.
Bra.
Post by Björn Lindberg
Post by Sunnan
Arc, chicken och gauche har alla löst detta på olika sätt.
Jaså minsann, jag visste inte att det vi diskuterar var av så stort
allmänt intresse. Skulle du kunna ge exempel på hur då (foos class),
(foos type), (foos name), etc., skulle kunna implementeras i
ovanstående implementationer?
Arc finns ju inte!!!!
och vad beträffar de andra piss-språken så har jag blivit lurad se:
http://thread.gmane.org/gmane.lisp.scheme.chicken/3125/

nu ska jag vara på dåligt humör resten av dagen bara för det!!! !!
problemet är att komma åt obundna variabler men det var ju det som var
så coolt och det var ju det jag ville! t.ex. kunna göra en automatisk
caddaaddaddaddar som i arc.

Följande går lätt i chicken:
(13's class)
;=> #<class exact>
("foo"'s class)
;=> #<class string>
(define foo '(a b c d))
(foo's class)
;=> #<class pair>

Det är ju för att 's som du säger introducerar en ny symbol; i.e. när en
behöver inte anropa en icke-definierad symbol, följande ger error:
(vansinnig-odefinierad-symbol's class)
; error error
fast det går att fixa genom att köra (unbound-variable-value 'symbol)
innan, då blir det:
(vansinnig-odefinierad-symbol's
;=> #<class symbol>

(foos class)
; error error
den går också att fixa på ett liknande mkt otillfredsställande sätt; att
det går att få den att returnera #<class symbol>, men det utvärderas
till (class-of 'symbol), inte (class-of foo); vad foo är bundet till får
man aldrig reda på och det var ju det som var så viktigt!!! ds!!

Här är iaf koden för att få apostrof-varianten att funka i chicken (i
gauche behövs en viss generisk metod definieras för alla objekt som en
vill kunna få class-of, vilket inte är så smidigt direkt!)

(invalid-procedure-call-handler ; (require-extension lolevel)
(lambda (proc args)
(if (eq? (car args) 's)
(case (cadr args)
((class) (class-of proc)) ; (require-extension tinyclos)
; ((type) (type-of proc)) ;; jag har inte denna svjv!!!
; ((name) (name-of proc)) ;; ditto
)
(error (error "call of non-procedure" proc)))))

ja jag inser att detta är en föga tröst!! själv-ds
Sunnan
d***@nada.kth.se
2006-04-18 11:11:19 UTC
Permalink
Post by Sunnan
nej precis som common lisp dödstråkigt
Mjä, men låt oss inte fördjupa oss i detta.
Bra.
Arc, chicken och gauche har alla löst detta på olika sätt.
Jaså minsann, jag visste inte att det vi diskuterar var av så stort
allmänt intresse. Skulle du kunna ge exempel på hur då (foos class),
(foos type), (foos name), etc., skulle kunna implementeras i
ovanstående implementationer?
Arc finns ju inte!!!!
Nähä, men det var ju du som tog upp Arc till att börja med.
Post by Sunnan
http://thread.gmane.org/gmane.lisp.scheme.chicken/3125/
nu ska jag vara på dåligt humör resten av dagen bara för det!!! !!
problemet är att komma åt obundna variabler men det var ju det som var
så coolt och det var ju det jag ville! t.ex. kunna göra en automatisk
caddaaddaddaddar som i arc.
(13's class)
;=> #<class exact>
("foo"'s class)
;=> #<class string>
(define foo '(a b c d))
(foo's class)
;=> #<class pair>
Det är ju för att 's som du säger introducerar en ny symbol; i.e. när
en
(vansinnig-odefinierad-symbol's class)
; error error
fast det går att fixa genom att köra (unbound-variable-value 'symbol)
(vansinnig-odefinierad-symbol's
;=> #<class symbol>
(foos class)
; error error
den går också att fixa på ett liknande mkt otillfredsställande sätt;
att
det går att få den att returnera #<class symbol>, men det utvärderas
till (class-of 'symbol), inte (class-of foo); vad foo är bundet till får
man aldrig reda på och det var ju det som var så viktigt!!! ds!!
Här är iaf koden för att få apostrof-varianten att funka i chicken (i
gauche behövs en viss generisk metod definieras för alla objekt som en
vill kunna få class-of, vilket inte är så smidigt direkt!)
(invalid-procedure-call-handler ; (require-extension lolevel)
(lambda (proc args)
(if (eq? (car args) 's)
(case (cadr args)
((class) (class-of proc)) ; (require-extension tinyclos)
; ((type) (type-of proc)) ;; jag har inte denna svjv!!!
; ((name) (name-of proc)) ;; ditto
)
(error (error "call of non-procedure" proc)))))
ja jag inser att detta är en föga tröst!! själv-ds
Du använder alltså en krok in i implementationen då en icke-existerande
funktion anropas. Detta går att göra i (viss) CL också. När en odefinierad
funktion anropas signaleras felet UNDEFINED-FUNCTION. Detta fel (hur sade
vi att vi skulle översätta condition nu igen? Missförhållande?) kan
fångas, och funktionens namn utläsas med funktionen CELL-ERROR-NAME. Så
långt är allt enligt standarden. För att sedan verkligen kunna göra
*någonting*, behövs en vettig omstart. Vissa, men inte alla,
implementationer erbjuder USE-VALUE, som låter användaren ge en annan
funktion att anropa i stället. Allegro är en sådan implementation, och i
Allegro kan man därför göra så här:

(defun undefined-function-handler (fname)
(when (eq fname 'foos)
#'list))

(handler-bind
((undefined-function
#'(lambda (c)
(let ((fn (undefined-function-handler (cell-error-name c))))
(when fn
(invoke-restart 'use-value fn))))))
(foos 'klass))

==> (klass)

Men detta löser inte vårt ursprungliga problem, där vi ville kunna göra:

(let ((foo (make-instance 'klass)))
(foos 'klass))

==> #<standard-class klass>

Foo är nämligen än statisk variabel, och finns kanske inte ens kvar när
koden körs. Även om vi kan få reda på att FOOS anropats, och byta ut detta
mot valfritt anrop så vet vi inte längre vad FOO betecknade i källkoden.

Nej, transformen måste implementeras i ett tidigare stadium än då
programmet körs. Antingen vid inläsning eller vid makroexpension. Om det
görs vid inläsning skulle läsaren känna igen FOOS som ett genitiv och
ersätta det med ex. (class-of 'foo). Ett problem är om den skall göra
detta för alla symboler som slutar på -s, för alla sådana där det redan
finns en nominativform i lispavbildningen eller bara för de där en
nominativform förekommer i någon lexikalt omslutande form, vilket är
svårare och kräver mer analys. Det andra alternativet, vid markoexpansion,
kräver att makrot har tillgång till den lexikala omgivningen, vilket det
inte har i portabel CL (men möjligen i vissa implementationer).


Björn
Sunnan
2006-04-18 12:22:28 UTC
Permalink
On Tue, 2006-04-18 at 13:11 +0200, d95-***@nada.kth.se wrote:
[snip snip snip]
Post by d***@nada.kth.se
inte har i portabel CL (men möjligen i vissa implementationer).
ja bra tack för att du redde ut begreppen

Elias Mårtenson
2006-04-14 13:37:45 UTC
Permalink
Post by Sunnan
Post by Björn Lindberg
"Klassen av Foo" låter som "familjen av Ragnar", eller "släkten av
Nora", det vill säga som rent nonsens. Liksom det heter Ragnars familj
eller Noras släkt heter det Foos klass. Men i dagligt tal skulle man
tala om att Foo *tillhör* klass si, eller *har* klass så. Mitt förslag
blir därför TILLHÖR-KLASS.
AppleScript, som är ett tämligen crackdoftande språk, har genetiv-s med
apostrof.
Applescript har jag använt några gånger, men apostrofen har jag
aldrig sett. Exempel?
Sunnan
2006-04-14 16:50:13 UTC
Permalink
Post by Elias MÃ¥rtenson
Applescript har jag använt några gånger, men apostrofen har jag
aldrig sett. Exempel?
The two statements in the following example are more or less equivalent:

tell application "System Events"
set ff1 to path of fonts folder of user domain
set ff2 to user domain's fonts folder's path
end tell

Man kan väl även använda nästlade tell antar jag, alltså jag har inga appleprogram detta kommer från internet!!!!
Elias Mårtenson
2006-04-14 17:01:59 UTC
Permalink
Post by Sunnan
Post by Elias MÃ¥rtenson
Applescript har jag använt några gånger, men apostrofen har jag
aldrig sett. Exempel?
The two statements in the following example are more or less
tell application "System Events"
set ff1 to path of fonts folder of user domain
set ff2 to user domain's fonts folder's path
end tell
Man kan väl även använda nästlade tell antar jag, alltså jag har
inga appleprogram detta kommer från internet!!!!
Det där har jag aldrig sett... Instansderefereringsoperatorn heter
"of" och så har jag alltid sett det skrivas. Om ovanstående funkar så
är det något som ytterst sällan används.
Sunnan
2006-04-14 17:11:53 UTC
Permalink
Post by Elias MÃ¥rtenson
Det där har jag aldrig sett... Instansderefereringsoperatorn heter
"of" och så har jag alltid sett det skrivas. Om ovanstående funkar så
är det något som ytterst sällan används.
Olika grupper programmerar olika;
det finns många som skulle säga "va!?! finns set! i scheme? det är något
som ytterst sällan används."
Elias Mårtenson
2006-04-14 17:15:38 UTC
Permalink
Post by Sunnan
Post by Elias MÃ¥rtenson
Det där har jag aldrig sett... Instansderefereringsoperatorn heter
"of" och så har jag alltid sett det skrivas. Om ovanstående funkar så
är det något som ytterst sällan används.
Olika grupper programmerar olika;
det finns många som skulle säga "va!?! finns set! i scheme? det är något
som ytterst sällan används."
Möjligt, men liknelsen var något krystad. :-)
Sunnan
2006-04-14 18:06:31 UTC
Permalink
Post by Elias MÃ¥rtenson
Post by Sunnan
Post by Elias MÃ¥rtenson
Det där har jag aldrig sett... Instansderefereringsoperatorn heter
"of" och så har jag alltid sett det skrivas. Om ovanstående funkar så
är det något som ytterst sällan används.
Olika grupper programmerar olika;
det finns många som skulle säga "va!?! finns set! i scheme? det är något
som ytterst sällan används."
Möjligt, men liknelsen var något krystad. :-)
Med tanke på att possessive-operatorn var det första jag hörde talas om
med AppleScript så tappade jag nästan hakan när du sade att det var
ovanligt.
Elias Mårtenson
2006-04-15 01:46:08 UTC
Permalink
Post by Sunnan
Post by Elias MÃ¥rtenson
Post by Sunnan
Post by Elias MÃ¥rtenson
Det där har jag aldrig sett... Instansderefereringsoperatorn heter
"of" och så har jag alltid sett det skrivas. Om ovanstående funkar så
är det något som ytterst sällan används.
Olika grupper programmerar olika;
det finns många som skulle säga "va!?! finns set! i scheme? det är något
som ytterst sällan används."
Möjligt, men liknelsen var något krystad. :-)
Med tanke på att possessive-operatorn var det första jag hörde talas om
med AppleScript så tappade jag nästan hakan när du sade att det var
ovanligt.
Detta är Apples dokumentation om Applescript.

http://developer.apple.com/documentation/AppleScript/Conceptual/
AppleScriptLangGuide/index.html

Här är sidan som specifikt dokumenterar instansdereferering:

http://developer.apple.com/documentation/AppleScript/Conceptual/
AppleScriptLangGuide/AppleScript.e.html

Jag kan inte se apostrofoperatorn nämnas överhuvudtaget i deras egen
dokumentation. Jag testade precis, och som du säger så fungerar det
som ett alternativ till "of", men jag kan inte se det dokumenteras.

Inte heller Wikipediasidan om Applescript nämner det.

Elias
Sunnan
2006-04-15 11:26:25 UTC
Permalink
Post by Elias MÃ¥rtenson
Jag kan inte se apostrofoperatorn nämnas överhuvudtaget i deras egen
dokumentation. Jag testade precis, och som du säger så fungerar det
som ett alternativ till "of", men jag kan inte se det dokumenteras.
Det står här t.ex.:
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleScriptLangGuide/AppleScript.7c.html
Sunnan
2006-04-12 12:12:42 UTC
Permalink
Post by Ingvar
"Vanlig Lisp 0.1
Borde det inte heta gemensam lisp?
Sunnan
Ingvar
2006-04-12 14:05:18 UTC
Permalink
Post by Sunnan
Post by Ingvar
"Vanlig Lisp 0.1
Borde det inte heta gemensam lisp?
Jag kan sträcka mig till "pöbelsk lisp", det lär bero på vuilket "Common"
man tror att det är. Det är hur som roligare med "Vanlig" eftersom det
naturligtvis är en ohemult OVANLIG lisp.

//Ingvar (tror att folk tar det lite allvarligt)
Johan Lindberg
2006-04-12 16:02:55 UTC
Permalink
Ingvar,

tänk på att en Lisp för pöbeln är lite som sökandet efter den heliga Graal.
Men PG blir säkert glad för lite sällskap. ;-)

/Johan Lindberg
Post by Ingvar
Post by Sunnan
Post by Ingvar
"Vanlig Lisp 0.1
Borde det inte heta gemensam lisp?
Jag kan sträcka mig till "pöbelsk lisp", det lär bero på vuilket "Common"
man tror att det är. Det är hur som roligare med "Vanlig" eftersom det
naturligtvis är en ohemult OVANLIG lisp.
//Ingvar (tror att folk tar det lite allvarligt)
_______________________________________________
Lisp mailing list
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp
Tommy Hallgren
2006-04-16 21:41:00 UTC
Permalink
Post by Sunnan
Post by Björn Lindberg
Som du säger, mindre intressant saa länge spraaket inte finns. Inte
för att Arc vore särskilt spännande ens om det fanns...
nej precis som common lisp dödstråkigt
Vad menar du?
Sunnan
2006-04-17 08:39:11 UTC
Permalink
Post by Tommy Hallgren
Post by Sunnan
Post by Björn Lindberg
Som du säger, mindre intressant saa länge spraaket inte finns. Inte
för att Arc vore särskilt spännande ens om det fanns...
nej precis som common lisp dödstråkigt
Vad menar du?
Va, det är väl inte så kontroversiellt? Tanken när CL kom var ju att det
skulle vara alla gamla tråkiga lispar från olika företag ihopsatt till
en. Common Lisp == Gemensam Lisp. Inte Ny och farlig Lisp.
Jag vill absolut inte haspla ur mig något kontroversiellt!
Loading...