Aprendí un poco de esquema de SICP pero ahora estoy más interesado en el ceceo común. Sé que el ceceo común fold
es reduce
, con argumentos especiales para plegado a la izquierda o derecha, pero ¿cuál es el equivalente a unfold
? Google no ha ayudado mucho. De hecho, me da la impresión de que no se desarrolla?"desplegar" para el ceceo común?
Respuesta
Common Lisp tiene (loop ... collect ...)
. Comparar
(loop for x from 1 to 10 collect (* x x))
con su equivalencia utilizando unfold
:
(unfold (lambda (x) (> x 10)) (lambda (x) (* x x)) (lambda (x) (+ x 1)) 1)
En general, (unfold p f g seed)
es básicamente
(loop for x = seed then (g x) until (p x) collect (f x))
Editar: fijar errata
El lisp hyperspec común no define una función unfold
, pero ciertamente puede escribir la suya. Su definición de esquema traduce casi símbolo para símbolo.
Gracias. Eso es desafortunado, pero supongo que sí, escribiré el mío. Me gusta mucho el esquema por ser tan puro y tener una bondad funcional tan hermosa, pero me he resignado a aprender el enigmático y enrevesado ceceo común. Es como aprender inglés en lugar de esperanto, ¿sabes? – nullpointer
- 1. Problemas con ltk (ceceo común)
- 2. Conversión de hexadecimal a decimal en el ceceo común
- 3. ¿Cómo puedo formatear a una alista en el ceceo común?
- 4. Común ceceo, comportamiento indefinido de la función de intersección?
- 5. ¿Cómo puedo convertir una cadena en entero con ceceo común?
- 6. ¿Cómo puedo determinar el sistema operativo y el nombre de host utilizando el ceceo común?
- 7. ¿Cuál es la diferencia entre requerir y cargar en el ceceo común?
- 8. requiere y * los módulos * están en desuso en el ceceo común?
- 9. Desplegar menú para TButton
- 10. manera idiomática de reemplazar (función x nula) del ceceo común en clojure
- 11. Fluctuaciones comunes de ceceo gris
- 12. Construir y desplegar framework para NodeJS
- 13. Usar el objetivo agregado para firmar y desplegar varias aplicaciones
- 14. Limpiador CSS para "desplegar" hojas de estilo?
- 15. git desplegar de cartuchos
- 16. Programación aplicable y tipos comunes de ceceo
- 17. No se puede encontrar la entrada al tiempo que añade proyecto para desplegar el montaje
- 18. ¿Cuál es el ceceo con mayor rendimiento en la JVM
- 19. desplegar con Capistrano no
- 20. Tocar y desplegar una vista
- 21. término común para el "basada en el valor" operador OR
- 22. experto desplegar cambiaron artefactos única
- 23. Aplicación Desplegar rieles en Bluehost
- 24. Error al desplegar en heroku
- 25. Buscando una manera segura para desplegar código PHP
- 26. Jenkins experto frasco para desplegar nexo - artefacto nombrar
- 27. Práctica común para el polimorfismo de orden superior en scala
- 28. Dónde poner el código común para iPhone, CLLocationManager
- 29. ¿Lisp común o esquema para el lado del servidor?
- 30. C++ programa para calcular el mayor divisor común
Hmm eso es interesante. He estado jugando con loop durante la última hora: ¡P es una gran cosa! Me encanta cuando los lenguajes de programación tienen este pequeño tipo de sublenguajes incrustados que tienen su propia sintaxis y un conjunto de reglas para comprender, como las cadenas de formato. ¡Loop es algo poderoso! – nullpointer
Bienvenido al lado oscuro. – huaiyuan