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

なでしこ3を改善するための掲示板
[一覧へ] > (@18) [低] [解決]
@18■ (#65) 表示(1と2を足す)と書いた時の動作 - TKI (2021-11-15 19:09) /低 未処理
v3.2.30 にて
関数名( ) のカッコの中に (単語+助詞+関数名) で書くと変な解釈になるみたいです。

//例1
表示(1と2を足す) //→1

//例2
dom=「てすと」のエディタ作成
表示(domのテキスト取得)

[実行時エラー]main.nako3(2行目): エラー『TypeError: Cannot read property ’__exec’ of undefined』が発生しました。


別件で、今エラーメッセージそのまま貼り付けたら投稿エラーになりました。 ’の半角がだめみたい。

(#66) カッコが必要なんです・・・ - 雪乃☆雫 (2021-11-15 22:05) /低 未処理
これがおかしいことなのか、直してもらった方が良いことなのか分かりませんが、とりあえず・・・
引数に命令を指定する場合には、カッコで囲わなければならないようです。
こんな感じ?

#①
表示((1と2を足す)) #3

#②
dom=「てすと」のエディタ作成
表示((domのテキスト取得)) #てすと

カッコが二重に必要って確かに妙な感じがするし、分かりにくくもあるんですが・・・
「1と2を足して表示」がカッコ無しで出来るのは、「1と2を足す。それを表示」の「それ」を省略してつなげて書けるようになっているのであって、表示命令に直で「1と2を足す」を指定しているわけじゃないんですよね。

(#67) 参考 - 参考 (2021-11-16 22:31) /低 未処理
予想の斜め上をゆく解析がされてしまうようです。
なでしこ式の助詞による引数と、C言語風の()と,の引数は、混ぜる時は1つ余分に()でくくったほうがよさそうです。

表示(1,2,足す())
のように解析されて構築されているようです。言葉で書くと、
「1」は、表示の第1引数。
「2」は、表示の第2引数。
「足す」を引数なしで呼び出して、その結果を表示の第3引数に。
最終的な「それ」は、「足す」の結果が入る(表示は値を返さない命令のため?)

上から・左から順に見ていって、最初に見つけた命令が貪欲に引数を取り込んでしまう感じですね。
なので、表示の命令が先にあれば、助詞が単なる「,」の代わりとして扱われ()などで優先順位が変わらない限り表示の引数としてすべて取り込まれてしまう と。

(#72) C言語風の関数呼び出し - クジラ飛行机 (2021-12-10 21:25) /低 解決
既に解説していただいていますが、C言語風の関数呼び出しと、通常の日本語的呼び出しを区別するために、カッコが重要な鍵となっています。

===
# こちらの書き方よりも
表示(1と2を足す)
===
# こちらが自然な書き方
(1と2を足す)と表示。
===
# より自然な書き方
1と2を足して表示。
===
どうでしょうか。一応、バグではないので、解決とさせていただきます。

(#65)へ返信する:

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

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

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