R、145バイト
ドットを2に変換し、ダッシュを1に変換し、数値を3進数で解釈し、mod 89を取得します。これにより、ハッシュテーブルで使用できる一意の数値が得られます。ASCII 13はTIOでは機能しないため、13(111 base-3)が存在するということは、1を追加することを意味します。
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]])))
オンラインでお試しください!