HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0508
しまGOTO文系に替わるスクリプト実行をジャンプできる命令文・関数に関して1解決


しま

リンク

2022/5/8(Sun) 19:30:55|NO.96317

 投稿は、はじめての方(ほう)ですみませんが
他のプログラミングで推奨しているかもしれませんが「GOTO」に替わる
命令文・関数も対応・検討していく段階になってきているかもしれない
と思います。自分としては「GOTO」文は利用しやすかったので良い
のですがスクリプトの流れや見やすさから考えれば致し方無いのかなと思います。

 具体的には
◆「CONTINUE」や「BREAK」などで変数などパラメータを追加して
様々な変化にも対応できるような入力任意オプションを取り入れる
(「BREAK」の場合はジャンプ先のラベル名前も指定できるようにするなど)
◆C言語系の「Defer」系列文や「Try〜Catch」系列文の導入、実装
◆「RETURN」文でジャンプ先のラベル名も指定できるようにする
(実際、過去の「RETURN」ではジャンプ先も指定できるBA●IC系もあった)
など

 自分は昔のPCのBA●IC系を利用したりもしていたせいなのかGOTO命令文、GOSUB
命令文が実装していて利用しやすかったということもあり、本当にありがたく思って
おりますし、ゲーム系の制作にもHSPは適していると思っています。

もっと「HSP=プログラミング言語」「HSP=hot Soup Processor」という事を
多数の人達に認識できるようなプログラミング言語になっていただければ幸いです



この記事に返信する


雪月夜

リンク

2022/5/14(Sat) 23:58:33|NO.96367

HSPが新しいものを取り入れて進化していくのは、私も大賛成です。
ですが、HSPの強みの一つは古い言語を使っていた人や、しまさんのようなGOTOを好んで使う人にとってもとっつきやすい点にあるので
昔から使われてきたGOTO構文は残しといた方が良いと思います。
GOTOが使えなくなると、過去に作られたコードが実行できなくなる問題とか発生するでしょうし…

今のHSPでもご要望通りの動作をさせることは(多分)可能です。
一例として、以下のプログラムはJAVAなどで実装されている、ラベル付きbreakの動作を再現しています。

#undef repeat #undef break #undef loop #define repeat(%1=-1,%2=0,%3="") %trepeat %i = %2 : %i0 %s1 %s3 *%i : if %p2 <= %p4 { goto *%p3 } : mref %i,65 : %p = %p2 + "0" %o0 #define break(%1="") %trepeat mref %i,65 : %p = %1 %o0 : goto *%p3 #define loop %trepeat %p4++ : if refstr = %p1 { goto *%p3 } : goto *%o : %o0 %o0 *%o %o0 randomize repeat 10,0,"b" repeat 10,0,"a" redraw 2 color 255, 255, 255 : boxf : color pos rnd(600), rnd(400) : mes "Hello World!" redraw 1 wait 20 break "b" ;指定した文字が設定されたrepeat文まで抜ける loop loop



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.96317への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2021(c) All rights reserved.