「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@92) [高] [解決]
@92■ (#215) 以上 - yuk (2008-10-18 09:52) /中 未処理
【症状】どのような症状、現象か?
「以上」で正しく比較されない
【再現方法】サンプルソース、再現手順など
a=3
b=0

//正しい結果が出ない
もし、aがb以上ならば   //デバッグウインドウ上では「b以上」が変数になっている
 aを言って終わり
違えば
 bを言って終わり

//正しい結果が出る
もし、aがb 以上ならば //bの後に半角スペースがある
 aを言う
違えば
 bを言う
【要望】どのような解決が望ましいか?
スペースを入れなくても正しく比較できるように。
【バージョン】1.508

(#217) しょうがないような・・・^^; - U D (2008-10-18 15:07) /中 未処理
なでしこは助詞で文を区切ります。逆に言えば助詞以外では区切られません。
つまり、「b以上」という一つの変数としてみなされてしまいます。
たとえば「n回」がダメなのと同じ理由ですよね。(これは割と周知されてきたんだろうか・・・?)
確かに日本語としてはそれで「上手く動いてくれそう」なんですが、
一応プログラミング言語なので色々こういった制約もついてしまいます。
「以上」命令のように、助詞を必要としない引数をもつものは他にも、
「n文字~」「nバイト~」という形の文字列処理系の命令などがあります。
こういった命令の引数に変数を指定するときは注意が必要です。
# ちなみに関数的に使うことを想定している「INT」「COS」など英語系の命令はほとんどがそうですが;

一応スペースを入れる以外の代替案を挙げておきます:
・もしa≧bならば
・もしaが(b)以上ならば
・もしaがb,以上ならば

# ただ、「以上」なんかは、もし文の中ぐらいでしか大体使わないことを考えると、
# いっそのこと「もし~以上ならば」という「構文」を作ってしまってもいいのかもしれません・・・
# ただの思いつき。

では

(#219) 改善の余地あり - クジラ飛行机 (2008-10-19 13:26) /高 調査中
質問が多いので、回、以上、以下くらいは、シンタックスシュガーとして許容してもいいかもと思えてきました。

(#220) 実装してみた - クジラ飛行机 (2008-10-21 15:08) /高 確認待ち
単語の末尾に「以上」「以下」「回」があったとき、トークンを区切るようにした。(@92)(r21)

(#254) うまくできません - yuk (2008-10-31 16:27) /高 確認待ち
ver.1.5091にて最初のサンプルを試してみたのですがなぜかうまく動きませんでした。
どなたか確認していただけませんか?

(#256) なら なら - yuk (2008-11-01 20:45) /高 確認待ち
ver.1.5092にてデバッグダイアログで確認したところ、「aがb以上なら」の部分が「aがbなら なら」になっていました。
確認・修正をお願いします。

(#531) r90で修正 - クジラ飛行机 (2009-02-22 15:35) /高 確認待ち
-「以上」「以下」命令で助詞があると正しく構文解析できていなかった問題を修正(r90)(@92)

(#533) RE:r90で修正 - mr (2009-02-22 23:25) /高 確認待ち
バージョン:1.518 ベータ版にて確認。
再現コードを確認した範囲では、修正されているっぽいです。

(#831) RE:RE:r90で修正 - しらたま (2009-05-24 17:51) /高 解決
修正されているようなので解決に。

(#215)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能