it-swarm-eu.dev

Jak mám začít s Lispem?

Programuji už roky, pracuji na různé iterace Blub (BASIC, Assembler, C, C++, Visual Basic, Java, Ruby v ne konkrétní pořadí "Blub-ness") a rád bych se naučil LISP. Mám však spoustu intertií, co s omezeným časem (rodina, práce na plný úvazek atd.) a příjemné štěstí s mým současným Blubem (Java).

Takže moje otázka zní: Vzhledem k tomu, že jsem někdo, kdo by se opravdu rád učil LISP, jaké by byly počáteční kroky k dosažení dobrého výsledku, který prokazuje nadřazenost LISP ve vývoji webu ? Možná mi chybí smysl, ale tak jsem zpočátku viděl aplikaci mých znalostí o LISP.

Mám na mysli „použijte dialekt A, použijte IDE B, postupujte podle pokynů na stránce C, zeptejte se svého zdravého rozumu po monadech pomocí poradce D“. Rád bych jen věděl, co zde lidé považují za být optimální sadou hodnot pro A, B, C a možná D. Také nějaká diskuse o relativní hodnotě učení tak mocného jazyka, na rozdíl od, řekněme, stát se odborníkem Rails=).

Pro doplnění dalších podrobností se budu vyvíjet na MacOSu (nebo Linuxu VM) - díky Windows nebudou zapotřebí žádné přístupy založené na Windows.

Poznámky pro ty, kteří právě procházejí

Chci tuto otázku chvíli nechat otevřenou, abych mohl nabídnout zpětnou vazbu k návrhům poté, co jsem je mohl prozkoumat. Pokud náhodou procházíte a máte pocit, že máte co přidat, udělejte to. Opravdu uvítám vaši zpětnou vazbu.

Zajímavé odkazy

Předpokládejme, že přicházíte na LISP z pozadí Java=), tato sada odkazů vás začne rychle.

  1. Integrace LISP pomocí --- Intellij's La Clojure plugin ( videocast )
  2. LISP pro web
  3. Online verze Practical Common LISP (c/o Frank Shearar)
  4. Země LISP a (+ (+ very quirky) game based) dovnitř, ale dělá to všechno tak jednoduché
  5. Nainstalujte Clojure a Sublime 2 na MacOS an vynikající průvodce , jak začít
  6. Podívejte se na knihu Clojure in Action . Pracoval pro mě.
47
Gary Rowe

To je pravděpodobně v rozporu s doporučeními většiny lidí, ale vyhněte se Emacsovi, pokud to již nevíte. Obzvláště pokud jste zvyklí na moderní IDE/editory.

Mluvím ze zkušenosti; Snažil jsem se začít s Emacsem, ale musel jsem se učit jazyk A editor mě opravdu frustroval (zvlášť proto, že Emacs je tak odlišný od jiných nástrojů). Nakonec jsem to chucking, začít s PLT Scheme (nyní Racket) , který přichází s poměrně jednoduchým IDE mezi platformami, centralizovaným úložiště balíčků a báječné docs (včetně přechodný kurz zaměřený konkrétně na vývoj webových aplikací ). Poté, co jsem dostal čistou přilnavost na LISP, skončil jsem vracet se do Emacsu a vyzvednout EL/CL pomocí Praktický Common LISP a Xah's Elisp Guide . V podstatě, jak to vidím, musíte znát LISP, než budete moci efektivně používat Emacs, a musíte znát Emacs, abyste byli velmi efektivní s CL/Elisp. To znamená, že si můžete buď vyzvednout schéma, nebo se nejprve naučit Common LISP prostřednictvím nějakého jiného editoru (pravděpodobně LispWorks osobní).

Pokud už znáte Emacse, pak je Elisp přirozeným krokem (i když to, jak byste si Emacsu užívali, aniž byste věděli, že Elisp je první, je za mnou).

YMMV samozřejmě, to je to, co jsem našel pomohl.

Protože váš současný blub je Java, pravděpodobně byste mohli dostat hodně najetých kilometrů z Clojure , Armed Bear nebo Kawa . Nezkoušel jsem nikoho z nich sám, nebyl to člověk Java chlap, ale Clojure konkrétně přichází vřele doporučován od ostatních lisperů, které znám. Vypadá to jako schopnost udržet si aktuální VM a IDE může pomoci s procesem učení).

18
Inaimathi

No, můžete zasáhnout dva ptáky čtením SICP ; Jeden se učí LISP (myslím, že schéma je dialekt LISP) a druhý je skvělý vhled do toho, jak program.Period !!

Conrad Barski skvělý tutoriál nazvaný Casting SPEL v LISP (SPEL je jeho zkratka pro makra). Zahrnuje to vytvoření jednoduché hry typu Adventure a skočí přímo do maker LISP. Pracoval také na úvodní knize, která je nyní k dispozici na adrese:

Naučte se programovat LISP, jedna hra najedno .

A z obsahu:

  • Vytvořte si vlastní webový server a použijte jej ke hraní her založených na prohlížeči

Nevím, co to znamená pro vývoj webu (jako na stránkách HTML) pomocí LISP. :)

Aktualizace - vidím někoho zmínit knihu "Struktura a interpretace počítačových programů", která mi připomněla, že MIT dal online, celý SICP Video přednášky Hal Abelsona a Geralda Jaye Sussmana . Možná jste našli knihu suchou, ale přednášky jsou vynikající. velmi pěkně. Dobře stojí za stažení a sledování.

10
Cyclops

Chcete-li získat dobrý základní úvod do jazyka, přečtěte si Praktický Common LISP . Kniha je vynikající.

Nastavení emaců a SLIME může být pro nováčka složité, kde se „složité“ liší v závislosti na operačním systému. Jako obvykle, Windows dostane krátký konec hůlky, ale lidé udělali tvrdou část a napsáno (SBCL, Emacs, SLIME).

Jakmile to vyjde, Planet LISP odkazoval na článek nedávno popisující, jak nastavit Hunchentoot a nginx.

Úpravy specifické pro OS: MCLIDE může být dobrým místem pro začátek. Nainstaloval jsem ji, ale neměl jsem možnost ji skutečně použít, takže o tom nemohu říct nic užitečného. Určitě to vypadá zajímavě!

Edit: Eclipse má také plugin Cusp .

8
Frank Shearar

Už mám spoustu skvělých odpovědí, ale za předpokladu, že se chcete s vývojem LISP ponořit do první fáze, mám několik dalších nápadů.

Clojure je první LISP, který jsem viděl, že má opravdu vynikající full-stack webové rámce, které jsou připraveny na hlavní čas.

  • Noir je solidní webový rámec s směrováním, templatováním atd., Podobný Sinatře, ale o něco bohatší na funkce. Používá Ring, což je v podstatě Clojureův ekvivalent Racka v Ruby.
  • Korma je abstrakční knihovna SQL, která se Noirem opravdu dobře spáruje.
  • Pinot je framework na straně klienta napsaný výhradně v ClojureScript, který nás přivádí k:
  • Clojurescript je kompilátor pro Clojure, který cílí na Javascript.

Pokud jste si toho nevšimli, právě jsem zakryl celý webový zásobník a je to vše napsané v Clojure.

Zjistil jsem, že Clojure je o něco jednodušší začít s běžnou LISP, s mnohem lepší podporou sady funkcí/knihovny než schéma.

Pokud přicházíte z pozadí Java vůbec), má to další výhodu spuštění v JVM, což vám dává přístup k celému Java stdlib) když to potřebujete.

Dostupná dokumentace je nedokončená, stejně jako samotné rámce. Ale je tu docela dobrý návod právě tady.

Pokud jde o editory ... pokud jste spokojeni s vim, můžete použít vim s SLIMV. Pokud máte rádi emacs, je emacs/SLIME v pořádku. Je tu docela dobrá podpora Eclipse a NetBeans pro Clojure (nebo tak mi bylo řečeno), ale obvykle používám TextMate (i když Sublime Text 2 se rychle stává mým editorem výběru). Vím, že mi chybí malá LISP magie, která nepoužívá integrovanější prostředí, ale jsem rád, že zasáhnu ⌘-Tab a přepínám mezi mým editorem a REPL; váš počet najetých kilometrů se může lišit.

Pokud chcete, aby vám kniha skočila, doporučuji Programování Clojure Stuartem Hallowayem a Aaronem Bedrou. Druhé vydání vyšlo z PragProg , takže je aktuální.

Happy Lisping!

6
Jason Lewis

Další komentátor Inaimathi , doporučil tuto knihu před několika dny: The Little Schemer

Dnes jsem ji obdržel a mohu říci jako někdo, kdo má velmi statnou knihovnu programovacích knih získaných po mnoho let, že jsem možná četl pouze jednu kapitolu, ale určitě budu potřebovat tvrdou verzi tohoto. Vypadá to jako Tao Te Ching, spousta malých úryvků božské moudrosti ohledně jazyka. Může to říkat Schéma, ale původně se jmenovalo „Malý LISPer“, jazyky na úrovni, o které diskutuje, jsou dostatečně podobné, aby se mohly vyučovat jako jeden.

Nejedná se o pokročilý text, ale má za úkol vštípit principy jazyka a k čemu to vlastně je, jak si to myslet. Věřím, že by to byl vynikající startér LISP.

Pozn. Matice programátorských kompetencí ve skutečnosti zmiňuje tuto knihu v nejvyšší úrovni kompetence věcí, které je třeba hledat. (viz část Knihy)

5
Orbling

Velmi pěkné místo, kde začít používat LISP, je uvnitř editoru Emacs, kde jej lze použít k předefinování téměř všeho. Chcete, aby klíč „e“ vložil čas, stačí napsat malý zlomek LISP a vygenerovat řetězec a spojit jej s klíčem e. Hotovo.

To vám také umožní skutečně POUŽÍVAT, co se naučíte v denním prostředí, pokud během dne používáte prostý editor.

4
user1249

Pokud se budete vyvíjet na počítači Mac, můžete zkusit Clozure CL . Je dodáván s IDE), který má stisky kláves kompatibilní s Emacs, a existuje most k Objective C, takže můžete psát aplikace kakaa.

Také jsem četl Practical Common LISP, ale shledal jsem Úspěšný LISP , aby mi pomohl.

Nakonec bude z vaší strany odměněna určitá trpělivost. Produktivita a menší vítězství přijdou docela rychle, ale velká výhra může chvíli trvat.

3
Larry Coleman

Mám přímo u svého stolu kopii ANSI Common LISP. Vyzvedávám to každých pár let a projdu pár kapitol, pak uvíznu na několika cvičeních a sklouzne na seznam priorit. To vám asi řekne víc o mně než o knize. Kniha se zdá být zcela kompetentní ...

2
glenatron