Lisp/Scheme på Mac

Tråden skapades och har fått 48 svar. Det senaste inlägget skrevs .
  • Medlem
  • Stockholm
  • 2010-05-30 23:45

Är det någon som knackar Lisp på sin Mac?

Vad använder ni och varför?

Vänligen, Ylan

Jag hittar rätt mycket om jag söker på "Lisp OSX" så jag misstänker att Google är den rätta att fråga. "Clozure Common Lisp" och "MIT Scheme" verkar rekommenderas. Jag vet inte ett skvatt om dem.

  • Medlem
  • Stockholm
  • 2010-05-31 09:40
Ursprungligen av Ylan:

Är det någon som knackar Lisp på sin Mac?

Vad använder ni och varför?

Vänligen, Ylan

Jag använder LFE. Har testat ett gäng webbservrar för att verifiera skalbarheten. LFE är en Lisp som baseras på Erlang. Erlang är soft-realtime, vilket gör att webbapplikationer svarar extremt snabbt.

Klicka runt lite på Zotonic, The Erlang CMS - Zotonic(Erlang) och LFE on the web(LFE) och se vad du tycker om svarstiderna.

Är du ute efter något robust och skalbart så är LFE det bästa just nu. Om du är arkeolog och ute efter den gamla kulturen så är Common Lisp med slime bra. (clbuild)

Jag antog att det var webb du var intresserad av, om du bara vill upptäcka Lisp är Emacs rätt bra. Apple - Downloads - UNIX & Open Source - Carbon Emacs Package

Blev lite nyfiken på det här - igen.

HP's miniräknare använder ett språk som är klart LISP-inspirerat, med en stack.
(Är Stacken LISP månne?)

Hört att det betyder Lots of Infernal Stupid Parenthesis.:-)

(nej det står för LISt Processing)

Senast redigerat 2010-05-31 19:47
Ursprungligen av Goflorp:

Blev lite nyfiken på det här - igen.

HP's miniräknare använder ett språk som är klart LISP-inspirerat, med en stack.
(Är Stacken LISP månne?)

HP's RPN-stuk är mer likt FORTH enligt min mening. Men kör HP fortfarande med det?

Citat:

Hört att det betyder Lots of Infernal Stupid Parenthesis.:-)

(nej det står för LISt Processing)

Det där finns det långa rader skämt om, och en del är riktigt roliga. Men frågan var vad som finns till OSX som är vettigt så jag vill nog insistera på att hålla oss till ämnet (möjligen expanderat till andra mindre vanliga språk).

Skämten skulle passa fint som annan tråd, fast kanske på ett annat forum.

Ursprungligen av Goflorp:

Blev lite nyfiken på det här - igen.

HP's miniräknare använder ett språk som är klart LISP-inspirerat, med en stack.
(Är Stacken LISP månne?)

Hört att det betyder Lots of Infernal Stupid Parenthesis.:-)

(nej det står för LISt Processing)

Det är nog snarare Polish notation, eller Reverse Polish Notation som påminner om varandra. Mellan Lisp och HP-räknare alltså.

Dvs istället för att uttrycka en addition mellan 1 och 2 som 1 + 2 kan man göra det prefix notation + 1 2 (aka Polish notation) eller som postfix notation 1 2 + (aka reverse Polish notation). Sedan gamla goa infix notation 1 + 2.

Ursprungligen av ace4711:

Det är nog snarare Polish notation, eller Reverse Polish Notation som påminner om varandra. Mellan Lisp och HP-räknare alltså.

Dvs istället för att uttrycka en addition mellan 1 och 2 som 1 + 2 kan man göra det prefix notation + 1 2 (aka Polish notation) eller som postfix notation 1 2 + (aka reverse Polish notation). Sedan gamla goa infix notation 1 + 2.

Så kan det vara. Likheten med Forth är ju också stor.
Gissar att RPN, Forth, stacken mm gör att man gärna blandar ihop det med annat.
Inte programmerat ngt alls i det sedan man hade HP48:an ...(1995? 97?) ...

Ursprungligen av ace4711:

Det är nog snarare Polish notation, eller Reverse Polish Notation som påminner om varandra. Mellan Lisp och HP-räknare alltså.

Dvs istället för att uttrycka en addition mellan 1 och 2 som 1 + 2 kan man göra det prefix notation + 1 2 (aka Polish notation) eller som postfix notation 1 2 + (aka reverse Polish notation). Sedan gamla goa infix notation 1 + 2.

Att RPN kan vara snabbt och effektivt för ett datorprogram kan jag förstå, men främst efter kompilering. Varför man skulle vilja skriva i det har jag däremot aldrig förstått. Jag menar, vem katten skriver + * - 1 6 8 9 i stället för (1 - 6) * 8 + 9? Och om man inte skriver så på papper, varför skulle man göra det i programkod?

Men jag tycker det har mer med FORTH än LISP att göra. Inte är väl LISP en riktig RPN-implementation? Det är väl bara en enda operator i taget? (Om jag inte minns fel, det var evigheter sedan jag använde LISP.) I FORTH får du skriva precis som på HP-räknaren, utan parenteser.

Likheten med Forth är stor, men jag har för mig att listhanteringen och att vektorer mm behandlas som listor är väldigt influerat av LISP.

Men men, kul språk iaf.

Används inte LISP inuti ngt annat... Är det Autocad eller?... varför har jag i bakhuvudet att det används som scriptspråk inuti andra program?

Ursprungligen av Goflorp:

Används inte LISP inuti ngt annat... Är det Autocad eller?... varför har jag i bakhuvudet att det används som scriptspråk inuti andra program?

Emacs skrivet är i Lisp.

  • Medlem
  • Karlskrona
  • 2010-05-31 22:56
Ursprungligen av Goflorp:

Likheten med Forth är stor, men jag har för mig att listhanteringen och att vektorer mm behandlas som listor är väldigt influerat av LISP.

Men men, kul språk iaf.

Används inte LISP inuti ngt annat... Är det Autocad eller?... varför har jag i bakhuvudet att det används som scriptspråk inuti andra program?

AutoLisp AutoLISP - Wikipedia, the free encyclopedia , det var tider

//Daniel , man borde börja hobby koda något

  • Medlem
  • Stockholm
  • 2010-06-01 00:11

Sysslar inte med webb alls, utan är mest nyfiken. Tankat hem Emacs, SLIME och försöker installera sbcl, när jag upptäcker att GNU Make inte finns på min burk längre. Xcode 3.2.2.

Har ni Make på era burkar? Jag har inga man pages, ingenting!

Vet att jag har haft det, men det var länge sedan jag använde det!

Vänligen, Ylan

  • Medlem
  • Stockholm
  • 2010-06-01 00:37
Ursprungligen av Ylan:

Sysslar inte med webb alls, utan är mest nyfiken. Tankat hem Emacs, SLIME och försöker installera sbcl, när jag upptäcker att GNU Make inte finns på min burk längre. Xcode 3.2.2.

Har ni Make på era burkar? Jag har inga man pages, ingenting!

Vet att jag har haft det, men det var länge sedan jag använde det!

Hittade make nu, måste ha hänt något med min shell startup file

Vänligen, Ylan

  • Medlem
  • Sollentuna
  • 2010-06-01 09:38
Ursprungligen av Ylan:

Hittade make nu, måste ha hänt något med min shell startup file

Vad bra, för jag blev lite orolig att min Xcode också skulle dumma sig under dagen...

DrScheme 350 software download - Mac OS X - VersionTracker

Trevligt interaktivt IDE med Scheme. Bara att ladda ner och köra. Mitt favoritmiljö för att kolla algoritmer snabbt innan jag lägger tid på något som inte visar sig funka när det skalas upp. Som extra bonus finns det en i princip identisk version till Windows och Linux, så du kan utveckla program med för marknad som mäts i tvåsiffriga andelstal.

Här gör du tankevurpan att sätt tecknen först. tecken kommer sist i RPN.

RPN är synnerligen effektivt om man gör sig jobbet att lära sig det.

(4+5)*(6+7)/(2+3) = blir

4 Enter 5 + 6 Enter 7 + * 2 Enter 3 + / , det går fort och man slipper parenteser

Själv är jag van vid det och känner mig alltid "klumpig" att sitta och fundera över prioriteringsordningar och parenteser. Räknar jag på min HP vet jag att det blir rätt.

Ursprungligen av Goflorp:

Här gör du tankevurpan att sätt tecknen först. tecken kommer sist i RPN.

Ja, det var fel men det ändrar ju ingenting i grunden, och eftersom tråden från början handlade om LISP och LISP har operatorn först så tycker jag vi kom närmare det i alla fall.

Citat:

RPN är synnerligen effektivt om man gör sig jobbet att lära sig det.

(4+5)*(6+7)/(2+3) = blir

4 Enter 5 + 6 Enter 7 + * 2 Enter 3 + / , det går fort och man slipper parenteser

Själv är jag van vid det och känner mig alltid "klumpig" att sitta och fundera över prioriteringsordningar och parenteser. Räknar jag på min HP vet jag att det blir rätt.

Men skriver du 4 5 + 6 7 + * 2 3 + / på pappret också? (Rentav med en massa ENTER överallt?) Jag kan knappt läsa det, och det blir ett avstånd mellan tanke och handling som jag känner en kostnad i. Och blotta tanken att försöka manipulera en ekvation skriven i RPN känns som självplågeri, med operationer som kommer långt från sina operatorer.

När du talar om att "fundera" över parenteserna, menar du på en miniräknare eller över huvud taget? Det är klart, jag skulle inte ens fundera på att knacka parenteser i blindo på en miniräknare som inte visar hela formeln. Det är inget alternativ. Redan som student hade jag en bra miniräknare som klarade det. Man kunde redigera hela formeln.

Men om man inte klarar av att skilja (1+2)*3 från 1+2*3 så har man väl missat några mattelektioner för mycket i grundskolan?

Ursprungligen av Ingemar Ragnemalm:

Ja, det var fel men det ändrar ju ingenting i grunden, och eftersom tråden från början handlade om LISP och LISP har operatorn först så tycker jag vi kom närmare det i alla fall.

Men skriver du 4 5 + 6 7 + * 2 3 + / på pappret också? (Rentav med en massa ENTER överallt?) Jag kan knappt läsa det, och det blir ett avstånd mellan tanke och handling som jag känner en kostnad i. Och blotta tanken att försöka manipulera en ekvation skriven i RPN känns som självplågeri, med operationer som kommer långt från sina operatorer.

När du talar om att "fundera" över parenteserna, menar du på en miniräknare eller över huvud taget? Det är klart, jag skulle inte ens fundera på att knacka parenteser i blindo på en miniräknare som inte visar hela formeln. Det är inget alternativ. Redan som student hade jag en bra miniräknare som klarade det. Man kunde redigera hela formeln.

Men om man inte klarar av att skilja (1+2)*3 från 1+2*3 så har man väl missat några mattelektioner för mycket i grundskolan?

4
+ 5
-----
9

Vidhåller att man inte ens behöver fundera på var parenteser skall placeras ut för att ändra prioriteringsordningen till det rätta.

Var inte en sån gringubbe, prova, lär dig.

Att skriva 1 + 2 = är inte mera "naturligt" än 1 Enter 2 +
Det handlar ju bara om vad man lärt in.

På papper skriver jag med infix notation, men så fort jag flyttar det till räknaren blir det postfix...

Matematiker är oftast rätt smarta människor, varför tror du i princip varenda en av dem föredrar RPN-räknare? tror du RPN-läget finns där för att jävlas med en ?

Varje gång lärarn står och skriver in mängder med tal och ritar parenteser så ler jag bara och slår in dem som en enda följd, stacken håller ordning på det hela.

Dessutom ser jag hela tiden delsummor etc under tiden jag räknar.
4 Enter 5 + (Bonk! "9" ligger på stacken
6 Enter 7 + (Bonk "13" ligger nu under 9 på stacken)

9
13

* (Bonk 9 och 13 fösvinner och ersätts med "247"
2 Enter 3

Nu ser stacken ut så här

247
2
3

+

2 och 3 ramlar bort, ersätts med 5

247
5

Vi anger division, /

49,4

Under hela processen har man möjlighet backa byta plats på siffror på stacken osv.

Slår vilken Casio eller Texas som helst... varje dag i veckan

  • Medlem
  • Mölndal
  • 2010-06-02 00:06
Ursprungligen av Goflorp:

Matematiker är oftast rätt smarta människor, varför tror du i princip varenda en av dem föredrar RPN-räknare? tror du RPN-läget finns där för att jävlas med en?

Det där är ju bara skitsnack. Jag känner ett gäng matematiker, och ingen av dem tycker att RPN har anmärkningsvärda fördelar. Om man då inte mot förmodan är uppvuxen med det. Men det pekar ju isf inte på någon fördel, utan bara att det möjligtvis är lika bra.

Ursprungligen av Goflorp:

Var inte en sån gringubbe, prova, lär dig.

Har du den attityden så har vi diskuterat färdigt. Vad tror du jag frågade för?

Ursprungligen av Ingemar Ragnemalm:

Har du den attityden så har vi diskuterat färdigt. Vad tror du jag frågade för?

Läste nog in betydligt mer bittert än vad som fanns i ditt inlägg.
Sorry.

Ursprungligen av Goflorp:

Läste nog in betydligt mer bittert än vad som fanns i ditt inlägg.
Sorry.

OK, då är du ursäktad. (Det var det mitt tilläggsinlägg handlade om också.)

Jag försökte fråga vad det var för sorts räknare du jämförde med (inte märken, det säger mig ingenting).

Vad ser man i miniräknarens fönster? Hela beräkningen med parenteser och operatorer, redigerbart?

PS: Jag hoppas det inte lät sarkastiskt mot slutet. Jag ville inte påskina att du har fel på något vis (alla har rätt att hitta sina lösningar och ingen skall bestämma vad som passar en annan) och allra minst anklaga dig för att inte kunna enkel matte. Jag är bara lite nyfiken på vad man upplever fördelen är, och det beror ju på vad man jämför med. Och det var det de två sista styckena ville fråga, om det är miniräknarknackandet på (i mitt tycke tvivelaktiga) miniräknare som är problemet, eller de skrivna formlerna?

"Att räkna med en HP-kalkylator" var något jag lärde mig för många år sedan och känner samma sak som Goflorp. Med RPN så räknar du som på papper och kan följa beräkningen steg för steg, vilket gör det enklare att följa med och även hitta fel mitt i en beräkning.
Det är enklare att konstruera en kalkylator som använder RPN och det kan ha varit en anledning en gång i tiden att pusha för den tekniken.
Jag kan gärna i fall någon är intresserad försöka beskriva med exempel vad jag anser är fördelen med RPN och hur det förenklade för mig i skolan att räkna rätt.
Med RPN blir det färre tangenttryckningar (snabbare?).

Jag äger visserligen en HP-räknare men har aldrig använt den. Köpte den för att duktigt folk sa att HP var så mycket bättre men upptäckte mycket snart att jag föredrar parenteser etc. Jag tycker det blir mer begripligt att använda samma syntax som jag lärt mig att använda på papper. WYSIWYG helt enkelt.

Visst RPN är nog effektivare om man kan det. Det är som med Mac OS X. Jag vet att mycket skulle gå snabbare att fixa i terminalen, om man vore en fena på Unix. Men likväl förblir jag Macens GUI trogen till 99% eftersom det är det jag kan bäst och gillar mest.

Nuförtiden (senaste 15 åren) när man aldrig är långt ifrån en dator har jag ingen användning för miniräknare. Huvudräkning, Excel, JMP, Maple, MatLab (ordnat efter beräkningens komplexitet) fixar alla mina beräkningar

(Sorry Ylan för att jag bidrar till ytterligare OT – saknar tyvärr erfarenhet av LISP)

Hp's räknare låter en se upp till 8 rader i höjd.

Smidigt sätt lagra delresultat. På mkt gamla hp-räknare ser man bara sista raden i stacken (hp-41, hp-35 etc).

Visste faktiskt inte att lisp körde operatorn först.
Säkert sett det ngn gång för 20 år sedan, men inte lagt det på minnet.

Jag tycker det blir enklare att räkna maffigare ekvationer med RPN, det blir tydligare vad kvadratrötter omfattas osv... Men det kan ju bero på att det är en vana.

Så här ser det ut på min gamla Sharp:

Man kan styra cursorn med piltangenterna (nere till höger), och redigera. Funktioner som sin, cos mm står i klartext.

Man kan tänka sig bättre, speciellt genom att göra fönstret större (det fanns en modell på tvären med bredare fönster redan då) men jag gillade konceptet och jag skulle inte byta till någonting som känns sämre. Fast numera använder jag Macen till sånt där förstås - man jobbar likadant men bättre.

  • Medlem
  • Stockholm
  • 2010-06-03 00:16

Blev en smula full i fniss

Som man frågar får man svar, och jag frågade om Lisp, vad väntade jag mig?

Nu skall jag bara konfigurera min .emacs-fil, och för att göra det måste jag hitta var fan SLIME och mitt Lisp-system (sbcl) hamnade vid installationen! Det är mycket med det jordiska (himmelska skulle väl en del lispbitna säga)

Visst är det roligt när det blir debatt!

Vänligen, Ylan

Ursprungligen av Ylan:

Som man frågar får man svar, och jag frågade om Lisp, vad väntade jag mig?

Med tanke på att Lisp inte använder RPN så blev det väldigt långt utanför ämnet.

För att Ylan (eller andra) skall tro att det viktiga med Lisp är paranteser och prefix notation;

De viktigaste sakerna med Lisp (ofta) är att det är funktionellt språk! Det har inte massa okontrollerbara sidoeffekter. Lisp har Garbage Collection och stödde rekursion på den tiden
andra språk förbjöd det. Lisp har också egenskapen att funktioner kan ta funktioner som argument. Det går att skriva självmodifierande kod i Lisp! På sin tid var Lisp extremt mycket mera modernt och avancerat än t ex Fortran. Vilket inte förnekar Fortans egenskaper...

Till sist en braskslapp om infix vs prefix/postfix.

Om infix gör kod mera begriplig, varför har dom flesta populära språken då endast prefix
på funktioner/metoder som du själv deklarerar?

Dvs, function_foo(x,y) är det vanliga sättet att använda en funktion men om vi tyckte att infix
var bättre kunde vi såklart använda (eller kräva) att programmeringsspråken lät oss skriva:

x function_foo y

Min poäng: antingen är infix bra både för algebra och andra funktioner, eller dåligt för båda. Eller så är det bara en vanesak... Precis som vi har vant oss hur stor 42" TV är och hur lång en 180cm kille är...

Bevaka tråden