El objeto devuelto por delay
en Scheme es "una promesa", pero las promesas no se consideran un tipo (por lo que no hay un procedimiento promise?
, y no aparece como un tipo en R5RS o R6RS).¿Por qué no promete un tipo de datos en Scheme?
¿Hay una fuerte reson por qué esto es así? Me parece bastante natural hacer algo como (if (promise? x) (force x) x)
, por ejemplo. (Y veo que algunas implementaciones me permitirán forzar las promesas y otras no). Además, si puedo almacenar algo en una variante y pasarlo, siento que debería tener un tipo.
Al igual que Guile. :-P –