Estoy intentando enseñarme a mí mismo F # portando algún código Haskell.Haskell a F # - declare un tipo recursivo en f #
Specifily Estoy intentando portar el problema de cuenta atrás muestra here
El Código Haskell aparece here
Estoy tratando de crear los siguientes tipos de Haskell en F #:
data Op = Add | Sub | Mul | Div
data Expr = Val Int | App Op Expr Expr
En F # Creo que el tipo de operación se define de la siguiente manera:
type Op = | Add | Sub | Mul | Div
Tengo problemas con el tipo de Expr.
¿Cómo se puede crear un tipo recursivo? De this SO question parece que no se puede crear el tipo de Expr en F #.
También, ¿cuál es el equivalente F # del tipo 'Aplicación' que aplica el tipo Op al tipo Expr?
Si no es posible portar directamente este código, alguien podría sugerir una estructura de datos alternativa.
muchas gracias! – TonyAbell