Seguro se preguntarán...qué es Mercury?
Mercury se ve como Prolog, pero se siente como un Haskell estricto o un OCaml puro.En otras palabras, es un lenguaje de programación lógico, funcional y orientado a objetos...
Como siempre...necesitaba crear una aplicación para poder aprender a usarlo...y a pesar de que me dió más de un dolor de cabeza...aquí está -;)
fibo.m |
---|
:- module fibo. :- interface. :- import_module io. :- pred main(io::di, io::uo) is det. :- implementation. :- import_module string, int. :- pred fibo(int::in, int::in, int::in, string::out) is det. fibo(NUM, A, B, FIBS) :- ( if A = 0 then fibo(NUM-1,A+B,B,FIB), FIBS = int_to_string(A) ++ " " ++ int_to_string(B) ++ " " ++ int_to_string(A+B) ++ " " ++ FIB else if A > 0, NUM > 1 then fibo(NUM-1,A+B,A,FIB), FIBS = int_to_string(A+B) ++ " " ++ FIB else FIBS = "" ). main(!IO) :- io.write_string("Enter a number: ",!IO), io.read_line_as_string(Result, !IO), ( if Result = ok(String), string.to_int(string.strip(String), N) then fibo(N,0,1,FIBS), io.write_string(FIBS,!IO) else io.write_string("Not a number...",!IO) ). |
Lo que me encantá de Mercury es que te obliga a no dejar que tu aplicación falle...puesto que el "else" es obligatorio...si ingresas un número entonces está bien...pero si ingresas una letra, estás obligado a hacer algo...
Aquí están las imágenes...
Saludos,
Blag.
Development Culture.
No comments:
Post a Comment