Ho appreso un bel po 'di schemi da SICP, ma ora sono più interessato alla chiarezza comune. So che lisp's common lisp's fold
è reduce
, con argomenti speciali per la piegatura sinistra o destra, ma qual è l'equivalente di unfold
? Googling non ha aiutato molto. In effetti ho l'impressione che non si spieghi ???"unfold" per comune lisp?
risposta
Comune Lisp dispone di (loop ... collect ...)
. Confronta
(loop for x from 1 to 10 collect (* x x))
con la sua equivalenza con unfold
:
(unfold (lambda (x) (> x 10)) (lambda (x) (* x x)) (lambda (x) (+ x 1)) 1)
In generale, è fondamentalmente (unfold p f g seed)
(loop for x = seed then (g x) until (p x) collect (f x))
Edit: fissare errore di battitura
L'iperspec lisp comune non definisce una funzione unfold
, ma è sicuramente possibile scriverne una propria. La sua definizione di schema si traduce quasi in simbolo per simbolo.
Grazie. È sfortunato, ma suppongo che scriverò da solo. Mi piace molto lo schema per essere così puro e con una così bella bontà funzionale, ma mi sono rassegnato a imparare l'intricata, ma espressiva lisp comune. È come imparare l'inglese piuttosto che l'esperanto, sai? – nullpointer
- 1. Timer comune Lisp
- 2. Programmazione parallela comune Lisp
- 3. Porting di codice Lisp comune per Clojure
- 4. voglio imparare la lisp comune
- 5. Identificatori di tipo Lisp comune
- 6. LISP comune su iPhone/iOS
- 7. Errore Lisp comune non rilevato
- 8. Comune Lisp caratteri di scelta rapida speciali
- 9. Trova funzione Integro in lisp comune
- 10. Sviluppo dell'interfaccia utente grafica comune Lisp
- 11. (casuale) in comune Lisp non così casuale?
- 12. Numero intero lisp comune a conversione esadecimale
- 13. Stringa da elencare senza # \ in comune lisp
- 14. Comune modo Lisp per rinominare uno spazio dei nomi
- 15. Comportamento della funzione di intersezione lisp comune e indefinito?
- 16. Come incorporare un interprete comune di Lisp in un'applicazione GUI
- 17. Comune Lisp che esporta i simboli dai pacchetti
- 18. Esiste una comune convenzione di denominazione dei pacchetti Lisp?
- 19. ottimizzazione del semplice programma di campionamento di Gibits Lisp comune
- 20. Come posso formattare un alist in comune lisp?
- 21. richiedono e * moduli * sono deprecati in comune lisp?
- 22. indentazione automatica su comune lisp emacs + slime + sbcl in windows
- 23. Dimensione binario Lisp
- 24. codice sorgente beautifier per lisp (Common Lisp, Scheme, Clojure)
- 25. Comune comune e proxy HTTP
- 26. Conversione da esadecimale a virgola mobile comune
- 27. Differenza di struttura tra common lisp ed emacs lisp
- 28. Qual è la differenza tra FUNCALL e # 'nome-funzione in comune lisp?
- 29. Qual è la migliore implementazione di lisp comune open source che funziona con Eclipse?
- 30. Un beautifier per il lisp?
Hmm è interessante. Ho giocato con il loop dell'ultima ora: P è fantastico! Adoro quando i linguaggi di programmazione hanno questi piccoli sottoprogrammi incorporati che hanno la loro sintassi e un insieme di regole da comprendere, come le stringhe di formato. Il ciclo è roba potente! – nullpointer
Benvenuti nel buio. – huaiyuan