関数 アロー関数 高階関数、引数
入門JavaScriptプログラミング (JD Isaacks(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT3(関数)、LESSON 17(アロー関数)、17.5(練習問題)、Q17-1の解答を求めてみる。
コード
function TRANSLATE(str, lang) {
switch (lang) {
case 'sv': return str.replace(/e/g, 'é');
case 'es': return str.replace(/n/g, 'ñ');
case 'fr': return str.replace(/e/g, 'ë');
}
}
const translator = lang =>
(strs, ...vals) =>
strs.reduce(
(all, str) =>
all + TRANSLATE(vals.shift(), lang) + str
);
const fr = translator('fr'),
sv = translator('sv'),
es = translator('es'),
word = 'nice';
console.log(fr`${word}`);
console.log(sv`${word}`);
console.log(es`${word}`);
入出力結果(Console)
% node sample1.js
nicë
nicé
ñice
%