英語の「○○もできないの?」という質問に対して「はい、できます」と返す謎をプログラミングで解明する
英語の否定疑問文「Can't you speak English ? (あなたは英語もできないの?)」に対し、
日本語なら「はい、できません」か「いいえ、できます」と答えるところを、
英語では「No, I can't.」か「Yes, I can.」とYes/Noを日本語と逆に答えますが、僕はどうしてもこれがしっくりきません。
いざ会話のときにすごく混乱します。
というわけで何が起きているのかJavaScriptで書いて頭を整理してみます…。
通常の疑問文
const canSpeakEnglish = true
// あなたは英語ができるの?
if (canSpeakEnglish) {
console.log('はい、できます。')
} else {
console.log('いいえ、できません。')
}
const canSpeakEnglish = true
// Can you speak english ?
if (canSpeakEnglish) {
console.log('Yes, I can.')
} else {
console.log('No, I can\'t.')
}
日本語英語ともにyes/noの差はありません。どちらもごく自然です。
否定疑問文
const canSpeakEnglish = true
// あなたは英語もできないの?
if (!canSpeakEnglish) {
console.log('はい、できません…。')
} else {
console.log('いいえ、できます!')
}
const canSpeakEnglish = true
// Can't you speak english ?
if (!canSpeakEnglish) {
console.log('No, I can\'t.') // どっち!?
} else {
console.log('Yes, I can.') // どっちやねん!
}
なんでそうなるんだ!!
Booleanで書くと:
const canSpeakEnglish = true
// あなたは英語もできないの?
if (!canSpeakEnglish) {
console.log('true、できません。')
} else {
console.log('false、できます。')
}
// Can't you speak english ?
if (!canSpeakEnglish) {
console.log('false, I can\'t.')
} else {
console.log('true, I can.')
}
A. 述べている対象が全然違う
日本語の「はい/いいえ」は条件式(質問)について述べている:
英語の「yes/no」は話している対象自体について述べている:
つまり、「日本語と逆にしなきゃ!」という考えを捨てて、
回答の頭につく「yes/no」は日本語の「はい/いいえ」とは存在意義が全く異なることを認識しないと、この違和感はずっと取れないのかもしれない。
(ちなみに勝手にそう行き着いたので、全然間違っているかもしれません…)
「否定疑問文内のnotを無視して答える」とも教えられたことがあるけど、頭の「yes/no」の捉え方はそっちが正しい…?
Author And Source
この問題について(英語の「○○もできないの?」という質問に対して「はい、できます」と返す謎をプログラミングで解明する), 我々は、より多くの情報をここで見つけました https://qiita.com/laineus/items/d9657cc11db881af0dcd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .