RosettaCodeData/Task/Execute-HQ9+/Julia/execute-hq9+.julia
2023-07-01 13:44:08 -04:00

31 lines
646 B
Text

hello() = println("Hello, world!")
quine() = println(src)
bottles() = for i = 99:-1:1 print("\n$i bottles of beer on the wall\n$i bottles of beer\nTake one down, pass it around\n$(i-1) bottles of beer on the wall\n") end
acc = 0
incr() = global acc += 1
const dispatch = Dict(
'h' => hello,
'q' => quine,
'9' => bottles,
'+' => incr)
if length(ARGS) < 1
println("Usage: julia ./HQ9+.jl file.hq9")
exit(1)
else
file = ARGS[1]
end
try
open(file) do s
global src = readstring(s)
end
catch
warning("can't open $file")
exit(1)
end
for i in lowercase(src)
if haskey(dispatch, i) dispatch[i]() end
end