文字列を「関数の入れ子」にするには、以下を行う必要があります。
最初の文字を関数として扱い、後続の文字をその関数の引数として扱います。たとえば、入力文字列がの
Hello
場合、最初のステップは次のようになります。H(ello)
次に、すべての部分文字列に対してこの同じ手順を繰り返します。だから我々は得る:
H(ello) H(e(llo)) H(e(l(lo))) H(e(l(l(o))))
あなたの仕事は、文字列を「関数の入れ子にする」プログラムまたは関数を書くことです。たとえば、入力文字列がの場合、Hello world!
出力する必要があります。
H(e(l(l(o( (w(o(r(l(d(!)))))))))))
入力には印刷可能なASCIIのみが含まれ、適切な形式で入力および出力を取得できます。たとえば、STDIN / STDOUT、関数の引数と戻り値、ファイルの読み取りと書き込みなど。
簡単にするために、入力に括弧が含まれず、空にならないことも想定できます。
Input:
Nest a string
Output:
N(e(s(t( (a( (s(t(r(i(n(g))))))))))))
Input:
foobar
Output:
f(o(o(b(a(r)))))
Input:
1234567890
Output:
1(2(3(4(5(6(7(8(9(0)))))))))
Input:
code-golf
Output:
c(o(d(e(-(g(o(l(f))))))))
Input:
a
Output:
a
Input:
42
Output:
4(2)
いつものように、デフォルトのルールと抜け穴がすべて適用され、バイト単位で記録された最短回答が勝ちます!
You may take the input and the output in any reasonable format.
キャラクターのリストは私にとって完全に合理的なようです。