javascript - tipados - tipos dinamicos
¿Hay alguna especificación de promesa para los lenguajes fuertemente tipados? (1)
Muchos idiomas tienen promesas, son un bloque de construcción útil y fundamental para la concurrencia. Muchos de ellos tienen promesas integradas como parte de su biblioteca de clase base.
-
Task<T>
C #Task<T>
- El
Future[T]
de ScalaFuture[T]
- CompletableFuture de Java 8.
- El
Future
de Python. (Sin embargo, no está tipado estáticamente). - Haskell''s
IO a
. - la
promise
de Clojure. - El
Future<T>
de DartFuture<T>
. - C ++ ''
std::future<T>
.
La mayoría de los otros lenguajes tienen implementaciones dominantes en el territorio del usuario, por ejemplo Swift''s y Objective-C''s Promise with PromiseKit.
Puedo seguir y seguir, pero el patrón está realmente en todas partes. La mayoría de los idiomas lo tienen especificado en su especificación de idioma. JavaScript es único en cuanto a la cantidad de implementaciones que existen para promesas y el hecho de que la especificación les dice cómo interactuar entre sí .
No son todos idénticos a las promesas, pero todos capturan la misma idea de un valor futuro. Algunos son mucho más limitados (sin encadenamiento monádico) pero la mayoría no lo son.
La especificación Promises / A + es excelente para implementar promesas, pero usa mucho la escritura débil de Javascript. ¿Hay alguna especificación para Promises que esté diseñada con idiomas con un tipado fuerte y estático como C #?