R,145字节
将点转换为2,将破折号转换为1,并以三进制形式解释数字并采用mod 89,这给出了我们可以在哈希表中使用的唯一数字。存在13(111 base-3)表示加1,因为ASCII 13在TIO中不起作用。
cat(c(letters,0:9,".")[match(strtoi(chartr(".-","12",scan(,"",t=scan(,""))),3)%%89+1,utf8ToInt('DG,)62 5N*EHMAI.%"!4=@'))],sep='')
在线尝试!
R,236字节(非竞争)
这不会具有竞争力,但是它可以让我们在R中展示一些有趣的东西:将莫尔斯电码树存储在带引号的语言结构中,m
并使用[[
可以递归地应用于列表。例如m[[c(2,2,3,2)]]
检索点,点,破折号,点或“ f”。
m=quote(.(e(i(s(h(5,4),v(,3)),u(f,M(,2))),a(r(l,.(.(,.),)),w(p,j(,1)))),t(n(d(b(6),x),k(c,y)),m(g(z(7),q),o(D(8),S(9,0))))))
for(w in scan(,"",t=scan(,"")))
cat(chartr("MDS","-. ","if"(is.symbol(z<-m[[(utf8ToInt(w)==45)+2]]),z,z[[1]])))
在线尝试!