Come già anticipato, iniziamo una serie di puntate per parlare dei code patterns (una breve introduzione la potete trovare qui: http://newlisp.wordpress.com/2008/05/21/aggiornato-il-codepatterns/).
Essi sono elementi molto importanti, ed hanno diverse funzionalità:
- Insegnano il modo migliore per svolgere determinati compiti.
- Sono una fonte preziosa di codice o medotologie di programmazione già pronte all’uso.
Il documento originale, che useremo come guida “spirituale”, si trova qui: http://www.newlisp.org/CodePatterns.html
In alcuni punti ho aggiunto anche altre informazioni, al fine di chiarire dei concetti che potrebbero risultare poco chiari ai meno esperti. Ho inoltre aggiunto anche altri esempi, includendo delle opzioni o features non esplicitamente indicate nel documento originale.
Pronti… allora si inizia!!!
Script files
La linea comando
Nei sistemi Un*x-like (come Linux per esempio), potete eseguire gli script in modo automatico mettendo, nella prima riga dello script il comando seguente:
#!/usr/bin/newlisp
Per eseguire l’interprete, indicando però di allocare uno stack più grande, si può dare il comando:
#!/usr/bin/newlisp -s 100000
Oppure…
#!/usr/bin/newlisp -s100000
In base alla shell che usate (cmd per Windows, oppure una delle innumerevoli shell disponibile in Un*x), newLisp accetta sia i comandi attaccati che staccati. Per verificare tutto ciò potete usare il seguente codice:
#!/usr/bin/newlisp -s 100000 -m 10 (println (main-args)) (println (sys-info))
Richiamandolo questo script, dovreste ottenere qualcosa simile a:
("/usr/bin/newlisp" "-s" "100000" "-m" "10" "./arg-test")
(308 655360 299 2 0 100000 8410 2)
NOTA: lo stack allocato per default (se non diversamente specificato) è pari a 2048, considerando il fatto che, ad ogni cella corrispondono circa 80 bytes.
Usare le pipes
Per poter inviare i risultati di un comando shell in uno script newLisp si può usare il codice seguente (salvatelo con il nome uppercase.lsp):
#!/usr/bin/newlisp # uppercase - converte un input in maiuscolo. # usage (un*x): # ./uppercase < file-spec # usage (Ms Windows): # newlisp uppercase.lsp < my-text (while (read-line) (println (upper-case (current-line)))) (exit)
Il breve script convertirà tutte le righe che giungono dalla console in MAIUSCOLO.
Oltre alla sintassi sopra indicata (vedi lo script), potete digitare anche questo comando:
type my-text | uppercase.lsp
Per oggi è tutto, la prossima volta parleremo di:
- Moduli;
- Contexts;
- Rendere un programma modulare e riutilizzabile.
A presto!
Translate To English!
Commenti Recenti