/* Ninja name generator in Picat. Inspired by "The Wolfram Language Workshop for the Hour of Code" http://www.wolfram.com/broadcast/video.php?v=1287 This Picat model was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import util. main => go. go => L = ["hakan","kjellerstrand","hakank","picat", "logic programming", "hello, world", "ninja"], foreach(W in L) println(W=ninja_name(W)), end, nl. ninja_name(Name) = Ninja => Map = new_map([ "a"="ka", "b"="zu", "c"="mi", "d"="te", "e"="ku", "f"="lu", "g"="ji", "h"="ri", "i"="ki", "j"="zu", "k"="me", "l"="ta", "m"="rin", "n"="to", "o"="mo", "p"="no", "q"="ke", "r"="shi", "s"="ari", "t"="chi", "u"="do", "v"="ru", "w"="mei", "x"="na", "y"="fu", "z"="zi" ]), Ninja = [ Map.get(C.to_string(),C.to_string()) : C in Name ].join('').