2009-11-11 8 views
15

Clojure mi ha introdotto al concetto di sintassi Lisp, e sono interessato, ma è un problema avere il Clojure repl set up e usarlo su macchine diverse. Quali altre risorse ci sono là fuori per la verifica al volo e la riproduzione con la sintassi Lisp?Semplici modi per provare e testare la sintassi Lisp?

Sto immaginando qualcosa di simile a un sito Web in cui è possibile inserire codice rudimentale, o un componente aggiuntivo del browser, o anche solo un'applicazione standalone che ti guida attraverso Lisp (qualcosa che gira su Linux/Ubuntu).

Non sono stato in grado di trovare nulla di simile per iniziare in un modo semplice/accessibile.

risposta

11

Il SISC Online REPL è esattamente quello che ti serve. Accetta la sintassi dello schema, che è una variante di Lisp.

Per un'applicazione standalone mi piace PLT Scheme perché sembra funzionare allo stesso modo su tutte le piattaforme che ho provato. In precedenza utilizzavo MIT Scheme su Ubuntu, ma ho deciso di cambiare quando ho acquistato una nuova macchina con Vista a 64 bit installata.

+0

Oh che così completamente rocce! Eccezionale! –

+0

Hmmm, l'applet java che funziona non funziona per me. Sembra il tipo di cosa che stavo cercando, ma in realtà non funziona in FF o Chrome. Peccato, dovrò guardarmi intorno per vedere se c'è una soluzione alternativa per farlo funzionare. – Kzqai

+1

@Tchalvak: strano. Funziona in FF su Vista per me adesso. –

5

Ho usato LispBox in passato. Facile da configurare e andare avanti, ma devo ammettere che Emacs è una seconda natura per me. Se non lo conosci, potresti utilizzare un altro editor, ma entrare in intimità con Emacs ti aiuterà a vivere comodamente a Lispville.

+0

Sì, Emacs è uno degli ostacoli al processo: se mi metto in folle, mi metterò in emacs, ma non voglio passare il mio tempo a giocare con emacs prima di occuparmi di lisp. provate, però. – Kzqai

+1

Quando ho deciso di imparare Lisp qualche tempo fa, ho capito che avevo bisogno di conoscere Emacs. Ho finito per imparare Emacs e, dopo aver passato così tanto tempo, non ho mai trovato il tempo per imparare il Lisp. .. –

1

Non voglio modificare il codice Lisp senza un editor che fa quello che Emacs farà con la seguente configurazione:

(define-key lisp-mode-shared-map "[" 'insert-parentheses) 
(define-key lisp-mode-shared-map "]" 'move-past-close-and-reindent) 

Gli ex inserti parentesi bilanciate. Se gli dai un argomento con prefisso numerico, inserisce molte coppie annidate. Per impostazione predefinita, ne inserisce uno. Se si dispone di un'area di testo contrassegnata, racchiude quella regione nella coppia più interna inserita. Ciò significa che non aprirai mai una parentesi che non è chiusa.

Quest'ultimo è più difficile da spiegare, in quanto viene utilizzato meno frequentemente. È più un comando di navigazione che un comando di inserimento. Conferma che hai finito di modificare il modulo corrente e sposta il cursore verso l'alto, l'esterno e oltre, preparando il prossimo inserimento probabile.

Con questi tasti associati, non è più necessario utilizzare il tasto Maiusc per accedere alle parentesi. Inoltre, questo lascia le chiavi parentesi legate normalmente, poiché è richiesta la riparazione di sexp o una parentesi letterale. Ho rubato le chiavi della staffa perché sono usate così raramente in Emacs Lisp e Common Lisp. I caratteri di parentesi sono ancora accessibili con combinazioni di tasti meta:

(defmacro make-key-inserter (def) 
    "Substitute for `self-insert-command'." 
    `(lambda (arg) 
    (interactive "*P") 
    (insert-char ,def (prefix-numeric-value arg)))) 

(define-key lisp-mode-shared-map "\M-[" (make-key-inserter ?\[)) 
(define-key lisp-mode-shared-map "\M-]" (make-key-inserter ?\])) 

Non è indispensabile l'utilizzo di Emacs, ma non accontentarsi di meno con un altro editor che non può corrispondere almeno questa capacità. C'è anche un'intera famiglia di comandi per la navigazione e la manipolazione del sexp come albero. Comprendere il motivo per cui ciò è prezioso ti richiederà di armeggiare per un po 'finché non smetterai di vedere la sintassi e inizi a vedere l'albero.

+0

Essenzialmente il mio problema adesso è che ho bisogno di entrare nella lingua/sintassi.Vedo i benefici di essere coinvolto con Emacs una volta che mi viene in mente la lisp in generale, ma devo imparare/impostare/ho installato emacs è un sacco di overhead lungo la strada – Kzqai

+0

Non si può negare che l'installazione di Emacs è un progetto, è davvero un intero stile di vita, ma assicurati di capire che se provi Lisp con un editor di base e Decidi che non ti piace, è così potrebbe essere a causa dell'editor non utile con cui ti sei sellato. Non arrenderti facilmente. Questo è il problema dell'uovo e dell'uovo con l'easing in Lisp. Tuttavia, quando affronti Emacs, anche se decidi di non voler mai più toccare il Lisp, avrai comunque imparato a utilizzare un editor fantastico che ti sarà utile per la maggior parte delle tue esigenze relative al testo. – seh

+0

Al momento, programmo in PHP con il vantaggio dell'evidenziazione della sintassi. Non mi aspetto di aver bisogno di molto altro (forse auto-indentazione) da un editor frivolo. Almeno all'inizio. Comunque, terrò a mente questa entrata per cose potenziali dopo. – Kzqai

8

A rischio di perdere tutti i dei miei punti di rep, prova newlisp.

+0

Programma di installazione standard, funziona su Mac/Windows/Linux, pronto per lo scripting. Cosa non va? – mcandre

+0

È diverso dalla comune sintassi del lisp. Non è una vera soluzione. – Shmukers

1

Dato che stai usando Ubuntu, installerei solo alcuni dei pacchetti e proverei.

Common Lisp: apt-get install clisp
Schema: apt-get install drscheme

Queste non sono le uniche implementazioni confezionati, ma forse il più facile per iniziare con. Sarai in grado di giocare su REPL e anche di eseguire i tuoi script attraverso l'interprete.

2

Per l'apprendimento Lisp le LispWorks personal edition va bene: LispWorks downloads. Esistono versioni per Mac OS X, Windows, Linux e FreeBSD. Tutti hanno le stesse funzionalità di interfaccia utente e questo include un editor e un listener, oltre a molti altri strumenti. Su Linux e FreeBSD attualmente (LispWorks 5) usa X11/Motif per la GUI - questo cambierà in una versione futura (LispWorks 6) in GTK. Quindi, per eseguirlo ora sotto Linux, è necessario avere la libreria Motif installata. Oltre a quello che lo usa è relativamente indolore. Ci sono alcune restrizioni (solo 5 ore di autonomia, quindi è necessario salvare e riavviare, ...) e la versione completa è commerciale. Ma per imparare alcune basi Lisp, è abbastanza buono.

1

BioBike fornisce una completa valutatore Common Lisp attraverso il web (con extra come un sistema di conoscenza di rappresentanza, bioinformatica, e di un langauge visiva alternativa pure).

5

Al giorno d'oggi non è difficile raggiungere un REPL Clojure.

  1. Vai http://build.clojure.org/ e scarica clojure.jar.
  2. Installare una JVM.
  3. java -jar clojure.jar

Questo dovrebbe funzionare su qualsiasi computer che dispone di una JVM installato.

Per ulteriori divertimento, installare rlwrap e utilizzare rlwrap java -jar clojure.

+0

Hah, è bello vederti qui. I tuoi post di blog sono parte di ciò che mi ha fatto diventare un clojure – Kzqai

+0

*** pensa alle cose che riguardano il clojure – Kzqai

+0

Awesome! Spero che tu rimanga fedele, Clojure è divertente –

1

Se si desidera giocare con LISP, in modo interattivo, rapidamente, GNU Emacs ha un interprete LISP integrato e ascolta nel buffer *scratch*. Digita un'espressione S, posizionala subito dopo, quindi premi Ctrl-J per valutarla. Oppure <ESC>: metterà un Eval: prompt nel minibuffer, accetta un'espressione S e lo valuta.

È possibile definire le funzioni, utilizzando Defun, e testare le cose in questo modo. Puoi accedere a ALL delle funzioni integrate di GNU Emacs e tutto ciò che hai caricato. Se vuoi mantenere le cose in ordine, puoi inserirle nel tuo file .emacs.

2

codepad.org è un semplice modo online semplice per immettere ed eseguire codice (in molte lingue diverse, incluso Schema). Lo uso sempre per testare frammenti di codice da utilizzare nelle risposte SO.

+0

Mi piace, ottimo per molti piccoli test linguistici. – Kzqai

0

https://github.com/fogus/himera
è stato molto facile per me da installare su un box virtuale https://www.nitrous.io. Fa una bella interfaccia web.

Download ed esecuzione di clojure-1.6.0.la scatola jar on my windows (XP) è stata facile come usare questo script per eseguire il REPL:

java -cp clojure-1.6.0.jar clojure.main 
Problemi correlati