Monday, March 02, 2015

LED es mi nuevo Hello World - Tiempo de OCaml

Aprender OCaml no es sencillo...debo admitirlo...pero estoy avanzando -;) Así que, aquí está mi versión de Numeros LED...

LED_Numbers.ml
open Core.Std

let get_leds number =
let leds = [0, [" _  ";"| | ";"|_| "];
            1, ["  ";"| ";"| "];
            2, [" _  ";" _| ";"|_  "];
            3, ["_  ";"_| ";"_| "];
            4, ["    ";"|_| ";"  | "];
            5, [" _  ";"|_  ";" _| "];
            6, [" _  ";"|_  ";"|_| "];
            7, ["_   ";" |  ";" |  "];
            8, [" _  ";"|_| ";"|_| "];
            9, [" _  ";"|_| ";" _| "]] in
 for i = 0 to 2 do
  for j = 0 to String.length(number) - 1 do
   let line = List.Assoc.find_exn leds 
        (int_of_string(Char.to_string(number.[j]))) in
   printf "%s" (List.nth_exn line i)
  done;
  print_string "\n"
 done
 
let () =
 print_string "Enter a number: "
 let num = read_line() in
 get_leds num

Lo gracioso es que al inicio intenté traducir my códigos pasados deJulia y Go...pero después de acordé de que aunque OCaml se puede utilizar hasta cierto punto como un lenguaje imperativo...su nucleo es en realidad Funcional...así que me dije...Ok...necesito reutilizar mi código en Haskell...pero de alguna forma empecé a pensar en una forma completamente nueva de hacer las cosas...y pienso que terminé con una forma mucho mejor y más clara...lo cual es algo que solo aprender un nuevo lenguaje de programación puede darte...una nueva forma de pensar acerca de viejos problemas -;)

Aquí están las imagenes como siempre -:)



Saludos,

Blag.
Development Culture.


No comments: