6
0

More than 3 years have passed since last update.

英語の「○○もできないの?」という質問に対して「はい、できます」と返す謎をプログラミングで解明する

Last updated at Posted at 2020-01-06

英語の否定疑問文「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. 述べている対象が全然違う

日本語の「はい/いいえ」は条件式(質問)について述べている:
Screenshot from 2020-01-06 19-07-27_edited_bool_1.png

英語の「yes/no」は話している対象自体について述べている:
Screenshot from 2020-01-06 19-07-27_edited_bool_2.png

つまり、「日本語と逆にしなきゃ!」という考えを捨てて、
回答の頭につく「yes/no」は日本語の「はい/いいえ」とは存在意義が全く異なることを認識しないと、この違和感はずっと取れないのかもしれない。

(ちなみに勝手にそう行き着いたので、全然間違っているかもしれません…)

「否定疑問文内のnotを無視して答える」とも教えられたことがあるけど、頭の「yes/no」の捉え方はそっちが正しい…?

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0