「この薬は1日1錠、ただし15歳未満は服用しないでください」のような文章の場合一文目を読んだ時点で処理が走るので怖すぎる

いま15歳未満ならこの薬は服用しないでください。ヤバすぎてほぼ100%一文目で処理が走ってしまいます。
224
twinrail (一時休止中) @twinrail_ut

「この薬は1日1錠を服用して下さい。ただし、15歳未満は絶対に服用しないで下さい。」みたいな文章、1文目を呼んだ時点で既に処理が走っている可能性があり怖すぎる ちゃんと「もし15歳以上ならば、1日1錠を服用して下さい。そうでないならば、絶対に服用しないで下さい。」にすれば処理が走らない

2021-04-26 03:26:09

わかる

YBF @YNMLBF

但し書きって怖いよね。条件文が後に出てくるのにちゃんと処理出来るのはそういう文脈で育った人間かそういう文脈で作られたプログラムだけだと思う。 twitter.com/twinrail_ut/st…

2021-04-27 16:09:56
新年あけましてネクベトうございます @nekhbet_moe

この薬は15歳以上のみ服用してください、服用する場合、一日一錠だけ服用してください。のほうがわかりやすいかもしれません。 私はこの方の書き方のほうが構文短くできて好きですけど! twitter.com/twinrail_ut/st…

2021-04-27 15:06:59
江添亮 @EzoeRyou

すでに指摘されているが、そのように投機実行する人間は、複合文を正しく処理できない可能性が高いので、やはり1文あたり一つのことのみを言うのがただしく、このような文章は読めないことが強く懸念される。 twitter.com/twinrail_ut/st…

2021-04-27 12:48:47
わに @_965d10

プログラム的だとすると「この薬を絶対に服用しないで下さい。15歳以上の場合のみ、1日1錠を服用して下さい」にしないとランダムで代入される奴か twitter.com/twinrail_ut/st…

2021-04-27 12:19:26
小2 @S6_RapidExpress

これって日本語の文法特有のやつよな英語とかやったらifで入るのに twitter.com/twinrail_ut/st…

2021-04-27 01:33:45
note@進化前毒統一 @note_dokudoku

15歳未満の人は絶対服用しないでください、服用できる場合は1日1錠服用してください の方が良くない?(´ε`ω) twitter.com/twinrail_ut/st…

2021-04-26 23:50:34
darkwood @major_oaks

最後まで読めって事じゃなくて、こういうのは、重要な事を、まず文章の先に持ってくるというのが、一番大切なわけで、中々浸透しないよな(多分、日本語の文章として一般的な形にならない事が、原因かと)。 twitter.com/twinrail_ut/st…

2021-04-27 16:24:24
ゴロウニャン @pwpk_eikan9

つまり、後処理だと必ず1回は処理を行ってしまうので、前処理にしましょうというアルゴリズムの話 twitter.com/twinrail_ut/st…

2021-04-26 23:36:34
miyaucinu🐾わん‼︎ @korokoro_inthew

走るね。 走る。 自覚していてもそれでも走るから自分のことがすんごい怖い。 twitter.com/twinrail_ut/st…

2021-04-26 22:56:58
納見みどり🍥 @nominz

「この薬は絶対に服用してはならない。ただし、15歳以上ならば1日1錠まで服用してよい。」 twitter.com/twinrail_ut/st…

2021-04-26 09:18:43
波々紋太郎 @naminamimontaro

確かに。 しかし自然言語では、原則を述べた後に例外を言うのが一般的なんですよね。危ないと分かりつつも。 twitter.com/twinrail_ut/st…

2021-04-26 17:14:52

コード、フローで書くと

おいち🍙ぱみふま @mochimochioichi

if($age >= 15){ // 1日辺りの回数, 1回あたりの量 $_hoge = have(1,1); } else { $_hoge = "服用不可"; } twitter.com/twinrail_ut/st…

2021-04-26 19:05:56
おいち🍙ぱみふま @mochimochioichi

当たり コメントアウトしてるからセーフ

2021-04-26 19:06:56
おいち🍙ぱみふま @mochimochioichi

処理的には合ってるけど 日本語そのままでは無いな

2021-04-26 19:08:12
おいち🍙ぱみふま @mochimochioichi

if($age < 15){ $_hoge = "服用不可"; } else { // 1日辺りの回数, 1回あたりの量 $_hoge = have(1,1); } return $_hoge;

2021-04-26 19:10:09
DummyPlg @DummyPlg

@twinrail_ut フローで書くとこういう事かな。 pic.twitter.com/efFJM74cWH

2021-04-26 23:15:00
拡大

法律でもこんな感じで混乱が

立川の教育情報 @edu_tachikawa

法令や行政文書で、ただし書き文をよく見ます。大掴みから限定条件の流れで書かれます。 流れ図を示したり、プログラム的にif-else構文で書く方が良いですよね。そうすると、まさにプログラミング的思考が求められることになります。 twitter.com/twinrail_ut/st…

2021-04-27 07:50:51
立川の教育情報 @edu_tachikawa

なお、ただし書き形式は、後置のunless文で、それが記述可能なプログラミング言語もあります。個人的には、この後置構文は分かりにくくて嫌いですが。 後置構文は、西欧語(英語?)の話者には自然な考え方のようです。だから、法令で使われるのかもしれません。

2021-04-27 07:50:52