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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0412
ふもこんな命令ある?8未解決


ふも

リンク

2007/4/12(Thu) 23:58:56|NO.7348

repeatでbreakするときみたいに
if命令のネストを一つ下げる命令ってありますか?
なかったら絶対作ったほうがいいですよ>HSP作者殿



この記事に返信する


kz3

リンク

2007/4/13(Fri) 04:58:08|NO.7351

>if命令のネストを一つ下げる命令ってありますか?
「ネスト」の意味が分かってから要望を出しましょう。



不如帰

リンク

2007/4/13(Fri) 17:35:23|NO.7369

少々意味がわかりません。

repeat 1 if 条件 処理 抜けるところでbreak文 loop



KENTA

リンク

2007/4/13(Fri) 18:04:23|NO.7372

もともとネストが上がる時
どんな時か分かってますか?



Irisawa

リンク

2007/4/13(Fri) 22:19:11|NO.7387

そういうときは通常、gotoを使用します。


a = 1 b = 1 c = 0 if a { mes "a" if b { mes "b" if c = 0 { goto *label } mes "c" } *label mes "*label" } stop

まあ、やり方次第ではそもそもそういうことが不要だったりすると思いますが。



ふも

リンク

2007/4/14(Sat) 00:11:05|NO.7412

irisawaさんのスクリプトみたいなのを
goto なしで実行できたほうがいいと思うのです。
goto で飛ぶのって、いかにも初心者っぽくてスマートでないです。
v3.1でも色々機能が追加されるみたいですが、
初心者向けのアップデートよりも
もっと基本的な命令の向上を図って欲しいデス・・・



Drip

リンク

2007/4/14(Sat) 00:30:16|NO.7415

Dripです。

 ふもさん、こんにちは。
確かに、プログラム言語は便利な機能をつければつけるほど小回りの効いた簡単なプログラムが
楽々かけるようになります。
しかしそれはとても危険なことなのです。

 Flashで使用するActionScript2が良い例なのですが、変数や関数、ラベルなどを全て
変数などから指定できてしまうという驚異的な機能性を持っています。
・・こんなことができてしまいます。


hensu1="label" hensu2="hensu3" goto eval(hensu1) //これでlabelにジャンプできてしまいます。 stop *label mes "変数に入ったラベル名からジャンプしてきました" mes "hensu3の内容は"+eval(hensu2)+"です。" //変数内に書かれた変数名で別の変数を参照できてしまいます。

 確かに凄く便利そうな機能ですが、制限無しにさまざまな制約を破棄し、自由度を高めてしまうと、
プログラムを後から見ると、作った自分さえもわけがわからない、スパゲティになってしまう
ことが頻繁に発生してしまいます。
(大規模なプログラムでは保守管理がお手上げ状態になってしまいます。)
(なので最近はgotoはタブーとし、オブジェクト指向プログラミングが主流となりました。)
ネスト破棄や内部変数や関数の動的な操作は非常に大きなリスクを伴うのです。


 小回りを効かせる機能の考案より、ネストを気にせず階層分けしたプログラムを書くために
モジュールや関数を学ぶ事はJavaやCに移行するときにきっとちからになると思います。
広い目でがんばってみてくださいね。^^



水野

リンク

2007/4/14(Sat) 01:00:59|NO.7421

機能を増やせば増やすほど
ランタイム部が重くなります。
HSPはスクリプト言語ですから、
ランタイムをそのままパックします。
ランタイムが重くなって泣くのは
サイズにうるさい私なので、
極力今の機能でいって欲しいのです。
だから、向上はちょっと・・・

サイズを小さくするために、
ネイティブコンパイラを積んでくだされ、
作者のおにたまさん。



Drip

リンク

2007/4/14(Sat) 02:19:29|NO.7425

 ネイティブコードに変換するのは確かに高速になって便利そうですが、
それはHSPがこれまでに培ってきた拡張性を破棄し、初心者を排除する形にならないか心配ですね。
何より今の中間処理言語の形態ならば、ユーザー、作者とも機能の把握し易さ、
作者にとってのバージョンアップの容易さ、ユーザーにとってはその理解し易さ等から見て、
これからプログラムを始めようとするユーザーにとっての“とっつきやすさ”は最高だと思います。

 ネイティブコードになってしまえば、論理エラーなど出ようものなら「HSPの不具合だ!」と
勘違いする方や、あまりに「なんでもできるもの」になってしまい、混乱が大きい気がします。
メニューの無い超高級レストランに突然ひとりで行くような感じですね。^^;

 言語形態にはそれぞれいいところがあるので、あせらずじっくり成長させていきたいですね。



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