6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

日本語プログラミング言語「なでしこ」Advent Calendar 2022

Day 5

「ここまで」の代わりに「。。。」が使えるよ。。。

Last updated at Posted at 2022-12-04

問題提起 - なでしこ3のブロック表現について

「なでしこ1」から「なでしこ3」になって、一番変わったのが、ブロック表現です。

「もし・・・ならば・・・ここまで」とか「N回・・・ここまで」のように、ブロックの末尾に「ここまで」を記述するようになりました。例えば、以下のように記述します。(なお「|」は省略できます。)

3回
|    「ワン>🐕」と表示。
ここまで。

これを実行すると、3回「ワン>🐕」と表示されます。プログラムを読んだままに実行されますね。

スクリーンショット 2022-11-17 16.08.25.png

でも実際のところ「ここまで」って書くの面倒ですよね。

そこで、いろいろな策が練られてきました。

💧(しずく)

「💧(しずく)」「。。。」は「ここまで」と書くのと同じ意味です。

3回
|  「ワン>🐕」と表示。
💧

インデント構文

プログラムの先頭に「!インデント構文」や「💡インデント構文」と書くと、なでしこv1のようにインデントをブロックと認識します。

💡インデント構文
3回
      「ワン>🐕」と表示。

インラインインデント構文

しかし、「えー、プログラムの先頭に「!インデント構文」と書くなんて面倒くさーい」という人のために作ったのが、インラインインデント構文です。Pythonのように、行末に「:」を書くと次の行をブロックと認識します。

3回:
      「ワン>🐕」と表示。

個人的な好み

上記のように、なでしこ3に、いろいろなブロック表現を実装してきました。それでも、個人的には「ここまで」が好きです。やはり、これが日本語として一番読みやすいのではないでしょうか。

ただし、めちゃくちゃ焦ってプログラムを書き上げる場合や、使い捨てが必要な場合は「ここまで」の代わりに「。。。」を使っています。そして、インラインインデント構文の「:」も時々使います。

いろいろ選択肢があるって便利です。。。

まとめ

プログラミング言語における「ブロック表現」について、これだけ自由に記述方法を変えられるのは、他のプログラミング言語ではあまりないことです。ブロック表現の自由度は「なでしこ3」の特徴の一つでしょう!!

しかし、仕様について悩み、試行錯誤して、また、悩み、みんなの意見を聞いて、試行錯誤して、また悩む・・・の結果、こうなったという感じです。いやはや、プログラミング言語の設計って終わりがありませんね!!楽しい限りです。

また、ブロック表現について、「もっと良い方法があるよ」という方、ぜひ、アイデアをお寄せください!!!

6
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?