5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語Mindの小技 「つぎに」~条件分岐の終端~

Last updated at Posted at 2025-03-19

はじめに

日本語プログラミング言語Mindの小技「つぎに」について説明したいと思います。

対象読者

日本語プログラミング言語Mindのユーザー、または日本語プログラミング言語に興味のある方

この小技に関連するMind言語マニュアル

この小技に関連するMind言語マニュアルの記述はMind8マニュアルに記載があります。

3 制御構文
ならば~つぎに
ならば~さもなければ~つぎに
でなければ~つぎに

構文=
雨降り?
    ならば 傘を差す
    つぎに

このあたりはよいとして、おそらく読者は、「つぎに」にひっかかったのではないだろうか。つまり、
雨降り?
    ならば 傘を差す
だけで済んでいれば、もっと「日本語らしい」のに...と。
 残念ながら、「ならば」だけでは処理の分岐を正確に記述できない。

構文=
雨降り?
    ならば テレビを見る
    さもなければ 外出する
    つぎに

他の言語でいえば〔if...then...else...〕の構文に相当する。

構文=
雨降り?
    でなければ 外出する
    つぎに

要するに「ならば」の逆の判定を行う構文である。

本機能(本記事)は、下記のバージョンに対応しています。Mind8のLinux版も対応していると思いますが、本記事では特に検証を行っておりません。

対応バージョン

■Mind7 ■Mind8 ■Mind9
■Windows版 □Linux版

小技の解説

構造化プログラミング言語のキホン中のキホン、条件分岐のMindの構文です。

この構文のポイントは分岐の終端に「つぎに」というワードが要求されていることです。プログラミング言語によっては条件分岐判定フレーズの後に、実行文が1つだけの場合は、かっこで囲ったりすることや終端のフレーズを省略できたりしますが、Mindの場合はかならず条件分岐の範囲の終端の指定が必要となります。それが一般には「つぎに」で知られていますが、じつは「つぎ」という単語であったりします。

構文サンプル例では、「雨降り?」や「外出」の定義が割愛されていますが、この記事では実際に動作するような定義例で説明いたします。

Mindプログラムソース

ifthenelse.src
明日は 数値 1。
天気は 数値 2。
晴れは 等しいと 等価。
雨は  異なると 等価。
しますは つぎと 等価。
であればは   ならばと   等価。
でないならばは でなければと 等価。

外出とは
    「外出とは外に出かけることです。」を 一行表示する。

家に居るとは
    「家に居るとは外にでかけないことです。」を 一行表示する。

メインとは
    明日の 天気が 晴れ ならば 外出します つぎに
    明日の 天気が 晴れ ならば 外出します さもなければ 家に居ます つぎに
    明日の 天気が 晴れ でなければ 家に居ます つぎに

    明日の 天気が 晴れ であれば 外出 します
    明日の 天気が 雨  であれば 家に居て そうでなければ 外出 します
    明日の 天気が 晴れ でないならば 家に居たり します。

メインの中の最初の3行は、Mindの標準的構文です。「つぎに」が最後についています。これは「つぎ」でもコンパイルがとおり実行もできますが、「つぎ」だけですと「つぎっ!」みたいに少し圧のある感じにとれなくもないので、恐らく「に」を添えてやんわり調にしているのかもしれません。このあたりは言語設計開発者の@killyさんのお話をうかがってみたいものです。

下の3行は「つぎに」を「します」で等価定義して、少し日本語としての自然さを改善してみた構文です。実行文は動詞のような動名詞で定義される場合が多くありますので、「します」との相性はけっこうわるくないです。

また、「ならば」「さもなければ」「でなければ」を若干使用頻度高めの類似語「であれば」「そうでなければ」「でないならば」に等価定義してみています。

単語の等価定義の「等価」についてはこちらの記事もご参照ください。

コンパイル結果

ではコンパイルしてみます。下位ライブラリはfileを指定します。

Mind9

下図はMind9βです。

C:\developments\vscode\mind9>mind ifthenelse file   

日本語プログラミング言語 Mind Version 8.11 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. C:\mind9-beta\mind9-beta\bin\mindex.exe --> ifthenelse.exe

Mind8

C:\developments\vscode\mind9>mind ifthenelse file

日本語プログラミング言語 Mind Version 8.07 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindex.exe --> ifthenelse.exe

Mind7

C:\developments\vscode\mind9>mind ifthenelse file
日本語プログラミング言語 Mind Version 7.5 for Windows
          Copyright(C) 1985-2004 Scripts Lab. Inc.
          Single user license.  Serial No:********
コンパイル中 - 終了
Coping.. C:\mind7\bin\mindexec.exe -> ifthenelse.exe

実行結果

つづいて実行してみます。みなさんは何行どっちが出力されるかわかりますかな?
Mind7の結果です。記述は割愛していますがMind8/9βも同じです。

C:\developments\vscode\mind9>ifthenelse
家に居るとは外にでかけないことです。
家に居るとは外にでかけないことです。
家に居るとは外にでかけないことです。
家に居るとは外にでかけないことです。

Mindプログラムソース(補足)

下記のソースの「天気」の値を2から1に返ると結果は変わります。

ifthenelse.src
明日は 数値 1。
天気は 数値 1。

実行結果(補足)

こんどはどちらが何行でるかみなさんはおわかりになるかな?
Mind8の結果です。記述は割愛していますがMind7/9βも同じです。

C:\developments\vscode\mind9>ifthenelse
外出とは外に出かけることです。
外出とは外に出かけることです。
外出とは外に出かけることです。
外出とは外に出かけることです。

参考情報

この小技「つぎに」を「します」に置換した構文を使った記述例の記事はまだありません。

開発者の@killyさんがコメントで解説いただいている「ひらがな」の扱いは下記の記事が詳しいです。

おわりに

いかがでしたでしょうか?なにかの参考になれば幸いです。2025年は日本語プログラミング言語Mind生誕40周年です。

本記事シリーズのご紹介

本記事シリーズ「日本語プログラミング言語Mindの小技」は日本語プログラミング言語Mind生誕40周年プロジェクトの一環です。興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスして、Mindコンパイラをダウンロードできますよ。Mindプログラミングマニュアル(基本文法)ページから気になるお題の構文を選んで、この記事のようにサンプル実装実行してQiitaにアウトプットしてみましょう!筆者はMind7/8/9βで検証しておりますが、もちろんMind8だけでもじゅうぶんです。またお題が既存記事とかぶるのはまったく問題ありません。同じお題でみなさまの多様斬新なサンプルをお待ちしております:grinning:

5
2
12

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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?