開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- Node.js, Safari(JavaScript エンジン)
- Learning JavaScript [邦訳](参考書籍)
Think Perl 6: How to Think Like a Computer Scientist (Laurent Rosenfeld(著)、Allen B. Downey(著)、Oreilly & Associates Inc)のPart 1(Starting with the basics)、Chapter 5(Fruitful subroutines)の Boolean functions の Exercise 5-3.を JavaScript で取り組んでみる。
Exercise 5-3.
コード(Emacs)
let input = document.querySelector('#input0'),
div = document.querySelector('#output0'),
run = document.querySelector('#run0'),
first_l = (word) => {
return word[0];
},
last_l = (word) => {
return word[word.length - 1];
},
middle_l = (word) => {
if (word.length <= 1) {
return false;
}
return word.substr(1, word.length - 2);
};
run.onclick = () => {
div.innerHTML =
`1.<br>` +
`${middle_l('ab')}<br>` +
`${middle_l('')}<br>` +
`${middle_l('"')}<br>`;
div.innerHTML += '2.<br>';
let isPalindrome = (word) => {
return word.length <= 1 ? true:
(first_l(word) === last_l(word)) && isPalindrome(middle_l(word));
};
[
['', true],
['a', true],
['aa', true],
['ab', false],
['abc', false],
['aba', true],
['abcdedcba', true],
['abcdeedcba', true]
].forEach((x) => {
div.innerHTML += `${x[0]} ${isPalindrome(x[0])} ${x[1]}<br>`;
});
let word = input.value;
div.innerHTML += `${word} ${isPalindrome(word)}<br>`;
};
0 コメント:
コメントを投稿