Gluon: Considere quitar la mónada IO

Creado en 13 abr. 2016  ·  3Comentarios  ·  Fuente: gluon-lang/gluon

Al escribir el REPL tengo la sensación de que un lenguaje estricto no funciona tan bien con la acción monádica una vez que se encadenan algunas acciones. Agregar una mejor sintaxis para las acciones monádicas tal vez podría hacerlo lo suficientemente conveniente, pero como el lenguaje no es puro de todos modos, es probable que sea mejor eliminar la mónada IO por ahora.

unresolved language question

Comentario más útil

En lugar de eliminar la mónada IO, puede valer la pena agregar algo de azúcar de sintaxis para facilitar la escritura de acciones monádicas.

let test = 123
do let x = Some a
do None
None
do <expr> in <expr_2>
// Indentation works instead of in
do <expr>
<expr_2>
==>
<expr> >>= (\_ -> <expr_2>)
do let x = <expr> in <expr_2>
// Indentation works instead of in
do let x = <expr>
<expr_2>
==>
<expr> >>= (\x -> <expr_2>)
let opt =
    do let x = get map "abc"
    return x
match opt with
| Some y -> y
| None -> error "Expected Some"

Todos 3 comentarios

En lugar de eliminar la mónada IO, puede valer la pena agregar algo de azúcar de sintaxis para facilitar la escritura de acciones monádicas.

let test = 123
do let x = Some a
do None
None
do <expr> in <expr_2>
// Indentation works instead of in
do <expr>
<expr_2>
==>
<expr> >>= (\_ -> <expr_2>)
do let x = <expr> in <expr_2>
// Indentation works instead of in
do let x = <expr>
<expr_2>
==>
<expr> >>= (\x -> <expr_2>)
let opt =
    do let x = get map "abc"
    return x
match opt with
| Some y -> y
| None -> error "Expected Some"

Una idea para hacer esto más fácil en la respuesta podría ser tener un comando :x <expr> para ejecutar acciones IO, como en la respuesta de Idris.

Imo, me equivocaría por mantener la fealdad por ahora, y descubriría cómo hacerla más bonita más tarde.

La respuesta ya ejecuta acciones IO directamente. Sin embargo, agregar :x <expr> puede hacerlo más explícito. Simplemente imité ghci, que también ejecuta acciones IO de inmediato.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Marwes picture Marwes  ·  10Comentarios

jrpascucci picture jrpascucci  ·  6Comentarios

newtack picture newtack  ·  14Comentarios

Marwes picture Marwes  ·  5Comentarios

typesanitizer picture typesanitizer  ·  12Comentarios