Thursday, June 18, 2015

LED es mi nuevo Hello World - Tiempo de Lua

Continúando con mi tradición de escribir una aplicación de LED para cada uno de los lenguajes de programación que aprendo...es tiempo de Lua -;)

LedNumbers.lua
local function split(s,delim)
 local result = {}
 for match in (s..delim):gmatch("(.-)"..delim) do
  table.insert(result,match)
 end
 return result
end

leds = {[0] = " _  ,| | ,|_| ",
        [1] = "  ,| ,| ",
        [2] = " _  , _| ,|_  ",
        [3] = "_  ,_| ,_| ",
        [4] = "    ,|_| ,  | ",
        [5] = " _  ,|_  , _| ",
        [6] = " _  ,|_  ,|_| ",
        [7] = "_   , |  , |  ",
        [8] = " _  ,|_| ,|_| ",
        [9] = " _  ,|_| , _| "}

io.write("Enter a number: ")
num = io.read()
for i = 1,3 do
 for j = 1, #num do
  line=split(leds[tonumber(string.sub(num,j,j))],",")
  io.write(line[i])
 end
 print("")
end

Lo que pueden ver inmediatamente...y es algo que realmente me sorprendió...es que Lua no proveé un comando de "split" o "explode" como parte de su core, así que tienes que hacerlo por tu cuenta...en realidad...lo mismo aplica para Haskell...pero para mí...los lenguajes funcionales están en otro nivel...y de todos modos...la implementación en Haskell de la función split es mucho más corta...

Aquí está el resultado...


Saludos,

Blag.
Development Culture.

No comments: