トップページtech
1002コメント341KB

【Lua】組み込み系言語総合 その6【Squirrel】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/03/10(日) 15:10:32.28
LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/

その他の参考URLは>2から

■前スレ
【Lua】組み込み系言語総合 その5【Squirrel】
http://toro.2ch.net/test/read.cgi/tech/1321063450/
■過去スレ
その4 http://hibari.2ch.net/test/read.cgi/tech/1301414458/
その3 http://hibari.2ch.net/test/read.cgi/tech/1272643397/
その2 http://pc12.2ch.net/test/read.cgi/tech/1243210301/
その1 http://pc12.2ch.net/test/read.cgi/tech/1205208141/
プログラミング言語 Lua
その3 http://pc11.2ch.net/test/read.cgi/tech/1160799232/
0435デフォルトの名無しさん2014/06/30(月) 15:10:51.45ID:02CSsGE4
>>434
mruby-print/src/print.c 内の printstr で stdout とハードコーディングされてるので、stderr に出したいときはここを書き換えるか、新たに stderr に出すメソッドを追加すればいいのでは?
0436デフォルトの名無しさん2014/06/30(月) 23:03:22.29ID:FuMPZ5KZ
ありがとうございます。
printstrのフックでは受け取れないメッセージがあったのでエラー出力には別のフックがあるのかと
思ったんですが、ソース見てみたらそこかしこでfwrite使って直接出力してますね。
確かにこれだと自分でソースいじらないとならないですね。
0437デフォルトの名無しさん2014/07/02(水) 16:59:10.88ID:JkuzDLMY
最近の lua とか squirrel とか python の実行速度を比較したページってないかね?
4、5年ぐらい前の奴なら英語サイトの奴があるけど、最近はどうなのかなと思って。
0438デフォルトの名無しさん2014/07/02(水) 21:40:33.67ID:z0TOEu0h
速さはjit環境の有無で大分違うよね
pythonだとpypy?

luajitは今後5.3移行にちゃんと追従してくれるか心配だね。
組み込み用としてのメリットはluaには他にもいろいろあるだろうけど
jit環境が追従していかないとmrubyあたりに追い抜かれる?
0439デフォルトの名無しさん2014/07/03(木) 07:39:27.54ID:FjTkZ2C1
jit関係ないっしょ
0440デフォルトの名無しさん2014/07/05(土) 14:29:38.02ID:MeYLeon+
AngelScript|Д`)<AngelScriptJITは2.27に対応してるな
0441デフォルトの名無しさん2014/07/05(土) 21:54:08.81ID:K5ikJkFl
>>440
ASがのけ者にされてたからちょっと安心した
0442デフォルトの名無しさん2014/07/06(日) 06:19:08.04ID:xkFVsdDO
angelscript今までなぜか無視してたけど言語仕様見てきたら結構よさそうだな
これコンパイル時に全部型チェックしてくれるの?
0443デフォルトの名無しさん2014/07/06(日) 12:38:13.11ID:uyyLiQuX
angelscriptの最大の問題はこれならC++直接書くのとかわらなくね?
という疑問が拭えないことだ
0444デフォルトの名無しさん2014/07/07(月) 01:12:10.12ID:KmCWtuSa
>>443
どうしてもスクリプトにしないといけない箇所があったときは
慣れ親しんだC++に近い文法でスクリプト書けるってのは凄い利点だよ
0445デフォルトの名無しさん2014/07/07(月) 01:43:37.99ID:PzOLkwtR
そもそも「どうしてもスクリプトにしないといけない箇所」なんてものは
思い込み以外では存在しない訳で
0446デフォルトの名無しさん2014/07/07(月) 01:49:05.61ID:X/HL5rf/
(゚Д゚) ハア??
0447デフォルトの名無しさん2014/07/07(月) 02:26:29.42ID:amtUtvKD
>>443
組み込みやすくもないし
書きやすくもないんだよね
しいて言えば
スクリプタを管理する立場の人にとっては
手間が減り楽が出来るのかもしれないね

現実社会でもよく見られる構図だけど
奴隷頭ってやつだな
0448デフォルトの名無しさん2014/07/07(月) 07:47:10.67ID:3MsBFfON
その点Luaはプログラマではない者が使いやすいことを理念としているからな。
ただし英語程度はできることが前提だが。
0449デフォルトの名無しさん2014/07/07(月) 09:42:19.00ID:n/CZjLr0
[要出典]
0450デフォルトの名無しさん2014/07/07(月) 10:01:11.88ID:kMcKP8+6
実行時コンパイルできるC++って考えるといろいろと悪用法ありそうなんだけどな
0451デフォルトの名無しさん2014/07/07(月) 10:23:10.27ID:KmCWtuSa
>>445
C++で作ったMOD前提のM.U.G.E.Nみたいな2Dゲーム
キャラクターの描画・行動全て自由に作れるようにするとしたら
スクリプトじゃなくて何にすればいい?
0452デフォルトの名無しさん2014/07/07(月) 11:08:37.90ID:m9tAIraA
「C++でつくったMOD前提」ならそれこそスクリプトでなくてもいいのでは
制御のインターフェースが外部に全部公開されてるってことだよね
0453デフォルトの名無しさん2014/07/07(月) 22:51:51.30ID:KmCWtuSa
>>452
書き方が悪かったな
MOD前提のC++で作った・・・だわ
0454デフォルトの名無しさん2014/07/08(火) 14:33:11.22ID:x77uNS3E
AngelScript|Д`)<AngelScriptは組み込み簡単だぞ。
ヘッダ1個インクルードしてライブラリファイル1個リンクするだけでOK。
0455デフォルトの名無しさん2014/07/08(火) 15:54:28.60ID:t9t2Zfam
AngelScriptはEnvironment-Module-Contextっていう構成がすごくわかりやすくて好きになったな
0456デフォルトの名無しさん2014/07/08(火) 15:56:54.46ID:t9t2Zfam
まちがえた
×Environment → ○Engine
0457デフォルトの名無しさん2014/07/08(火) 23:53:13.46ID:jARkErFj
C++が好きな人にとってはいいのかもしれないが
C++に特に思い入れのない人にとっては
何でC++の持つ恩恵が受けられる訳でもないスクリプトにまで
C++の流儀を持ち込まねばならんのだ
という感情があるということを
AngelScript推進派は意識した方がいいと思う

AngelScriptに懐疑的な人に対して
>>444みたいなアピールは無意味どころか逆撫でしてるんじゃない?
0458デフォルトの名無しさん2014/07/08(火) 23:55:23.17ID:jARkErFj
勿論AngelScriptの有用性を否定してる訳じゃなくて
人にモノを薦めるときは相手の考えも尊重してね
という話
0459デフォルトの名無しさん2014/07/09(水) 00:01:15.25ID:yWtVDAf2
C++構文とかどうでもいいからさ
コンパイル時型チェックしてくれる組み込めるスクリプト言語って他にないの?
0460デフォルトの名無しさん2014/07/09(水) 00:02:36.15ID:6stlqCZC
なぜそこまで言われなければならないんだ・・・
じゃ今度からAngelScriptの話をするときは「(個人の感想です)」って末尾に付けるわ
0461デフォルトの名無しさん2014/07/09(水) 00:08:24.48ID:HW4kwc6W
JavaやC#なんかとおなじで、ドカタに使わせる言語としては良さそうなんじゃないかと思う。
0462デフォルトの名無しさん2014/07/09(水) 00:27:27.75ID:q6W6WKLr
AngelScript|Д`)さんってさぁ
Botや荒らしの類にしか見えないんだよ
本気で貢献したい、広めたいと思うなら
リファレンスの翻訳したり
サンプルコードを提示したりと
やることはいくらでもあるでしょ?
どっかの国のじゃないんだからさぁ

ま、流行らないと思うけども
0463デフォルトの名無しさん2014/07/09(水) 00:43:58.35ID:ay8R5j5j
静的と動的を二刀流したら面白そうなのは分かるけど
同じ系統の言語を二個使ったら何ができるのかが分からない
0464デフォルトの名無しさん2014/07/09(水) 00:55:53.38ID:Pn1IATNt
ASって存在価値ないんじゃね?ってレスに
こういう場面で使えるよって返したつもりだったけど

無意識のうちに、C++すら理解できない能無しの劣等感を煽っちゃったんだね。
ごめんね。
0465デフォルトの名無しさん2014/07/09(水) 01:03:57.02ID:6stlqCZC
動的型付け言語はコーディングミスをしない超人向け言語ですので
その超人様がコンパイル時型チェックに頼る凡人を見下すのは当然ですね
0466デフォルトの名無しさん2014/07/09(水) 01:15:00.10ID:q6W6WKLr
>>464
誰だよお前はw
0467デフォルトの名無しさん2014/07/09(水) 07:00:19.88ID:D5g6nYoo
俺だよ俺
0468デフォルトの名無しさん2014/07/09(水) 08:20:34.04ID:dnhlgLoJ
AS信者ってキモいな・・・
0469デフォルトの名無しさん2014/07/09(水) 08:35:39.86ID:dUvUmdvT
信者とか言い出すやつは荒らし。
みんな知ってるね。
0470デフォルトの名無しさん2014/07/09(水) 19:01:55.74ID:r8cQgObV
AngelScriptは何も悪くない
悪いのはソレを使う人間だよ
0471デフォルトの名無しさん2014/07/09(水) 19:50:22.95ID:ay8R5j5j
静的と動的の争いが無駄すぎるおかげで、二刀流の生産性が非常に高く感じられる
0472デフォルトの名無しさん2014/07/09(水) 20:24:17.88ID:yWtVDAf2
お前らが言ってる静的動的ってどういう意味で言ってんの?
型付けが?それとも実行環境が?
0473デフォルトの名無しさん2014/07/10(木) 14:37:45.84ID:QqTFR8Ev
AngelScript使ってる男の人って・・・・・
0474デフォルトの名無しさん2014/07/10(木) 16:01:45.19ID:iwrqfwZm
TreeBoa?
0475デフォルトの名無しさん2014/07/11(金) 01:37:33.79ID:hJn+b6B7
luaのmodule, requireの使い方がイマイチよく分からないんだけど
a.luaとb.luaというファイルがあったとして、a.luaにmodule("a")って書いておけばb.luaからrequire("a")でa.luaを参照で生きるってのは分かるんだけど
a.luaもb.luaもアーカイブ内にあって(例えばZIPにスクリプトが固めてある状態で)アーカイブから直接
スクリプト文字列をロードしてlua_Stateつくったとするじゃん?そしたらb.luaからa.luaってどうやって参照するの??
a.luaをロードしたlua_Stateと、b.luaをロードしたlua_Stateはそれぞれ完全に独立してるわけじゃん?
a.lua内でmodule("a")とかやっても、それはb.luaにとっては全く無関係な話しじゃね?っていう
0476デフォルトの名無しさん2014/07/11(金) 02:45:06.27ID:Mxpl8CKX
>>475
dostring

はい

はい
0477デフォルトの名無しさん2014/07/11(金) 04:09:49.02ID:D40A4FPH
>>475
requireの公式マニュアル読めばモジュールの検索手順載ってるからそれ読んどいてね
require経由で独自のアーカイブからファイルを読みたいなら
package.preloadのメタメソッドに自前のローダを仕込むとかトリックを使うことになるよ
0478デフォルトの名無しさん2014/07/11(金) 07:07:35.10ID:TT3tD9Ot
>>475
スクリプトをロードすると関数がつくられる (lua_Stateではない)
各々の関数はグローバル変数を共有できる (完全に独立してない)

モジュールの使い方はバージョン毎に改善されているが
グローバル変数の使い方はあまり変わってないので使い方が分からない人はいないと思う
0479デフォルトの名無しさん2014/07/11(金) 07:47:48.30ID:XCAXgxw4
module は廃止されたよね?
ttp://p-monster.hatenablog.com/entry/2013/02/13/205419
0480デフォルトの名無しさん2014/07/11(金) 07:50:22.67ID:XCAXgxw4
こちらの方がよいかも
ttp://ar.aichi-u.ac.jp/blog/lua/lua.html#id.2.2.0
04814752014/07/11(金) 14:00:17.28ID:snzc4mzL
ああ、なにか根本的に間違ってたんだな
package.preloadとかの説明は読んでたけど、このテーブルが異なる lua_State 間で共有される
情報だとは思っていなかった

結局メタテーブルいじるのは面倒なので、単に

int lua_include(lua_State *ls) {
 const char *scriptname = lua_tostring(ls, 1);
 const char *source = GetStringFromArchive("data.zip", scriptname);
 lua_dostring(ls, source)
 return 0;
}

みたいな関数を登録して、スクリプト内から include("a.lua") って呼んで使うことにしたよ。みんなありがとう
0482デフォルトの名無しさん2014/07/13(日) 17:10:55.13ID:kuvdsVq2
luaでiosアプリを操作するスクリプトを作ってます
ランダム変数を使って、タッチする位置とタイミングを微妙に変えつつ、
位置とタイミングをある程度の範囲内に抑えたいのですが、

x1=math.random(14,134);
y1=math.random(280,314);
a1=math.random(-1,+1);
a2=math.random(-1,+1);
t0=math.random(80000,85000);
t1=math.random;(50000,50100);
touchdown(0,x1,y1);
usleep(t0);
touchup(0,x1+a1,y1+a2);
usleep(t1);
usleep(300000);

まったく反応しません
どうしてでしょうか
0483デフォルトの名無しさん2014/07/13(日) 17:13:44.99ID:kuvdsVq2
× t1=math.random;(50000,50100);
◯ t1=math.random(50000,50100);

直したけど動きません
0484デフォルトの名無しさん2014/07/13(日) 17:20:13.38ID:kuvdsVq2
お騒がせしてすいません
+が余計でした
0485デフォルトの名無しさん2014/07/13(日) 23:51:22.63ID:oRazOMf+
関係ないけどluaは命令末尾にセミコロン要らないよ。
まあ、同じ行に命令を並べる時は必要になるから、念のため常につけておくってのはアリだと思うけど。
0486デフォルトの名無しさん2014/07/15(火) 22:41:15.80ID:4Hk/aMI9
lua_getuservalue, lua_setuservalueってどういう使い方するの?
というかどういう風に使うもんなの?
0487デフォルトの名無しさん2014/07/18(金) 07:19:05.42ID:MNjetX+m
>>486
マニュアルやら
http://sceneryandfish.withnotes.net/?p=1908
などでも触れてるけど
数十行レベルでしょのシンプルなソース見ちゃうのが手っ取り早いと思うよ
0488デフォルトの名無しさん2014/07/21(月) 12:06:25.68ID:MDGKsYd9
AngelScript|Д`)<AngelScript2.29.1記念カキコ
何か重要なバグフィックスらしい。
0489デフォルトの名無しさん2014/07/21(月) 16:26:34.64ID:CPAJhmyk
ttp://www.angelcode.com/angelscript/changes.php
これか
メモリ関連のバグフィクスと、出力されるバイトコードがおかしくなるバグの修正かな
0490デフォルトの名無しさん2014/08/11(月) 22:58:35.99ID:xLVZtjTF
何気に痛いな
バージョン番号がいまいちわからないんだけど
stable版ってどれなんだろ
0491デフォルトの名無しさん2014/08/12(火) 02:19:26.71ID:Hfmn/cHa
auto touchっていうアプリのスクリプトがLua言語でちんぷんかんぷんで。
ここで質問してもいい?
0492デフォルトの名無しさん2014/08/12(火) 02:55:05.48ID:QZJQGyIx
>>491
いいよ
寂れてるし。
0493デフォルトの名無しさん2014/08/12(火) 05:31:01.87ID:7nSDT24w
Lua,Squirrelの簡単な本がない
あれば買うが、難しい本はいらん
0494デフォルトの名無しさん2014/08/12(火) 06:24:10.22ID:FZ4QQEE/
用途を考えればド素人向けの本はもっといっぱいほしいよな
0495デフォルトの名無しさん2014/08/12(火) 08:49:45.55ID:Hfmn/cHa
質問しておきながら爆睡してしまった。申し訳ない。
auto touchの関数についてhttp://autotouch.me/?page_id=269

alert("Hello world!"); hello world!と表示する
vibrate(); -- 一回振動する.
tap(100, 200); -- 座標(100, 200)をクリックする.このあたりは実際にauto touchで実行できたんだ。

画像aがあるときにaをタップ
っていうのはfindImageTap {imagePath="/var/A.png", count=1};
だと思うんだけど出来なくて困ってる。
0496デフォルトの名無しさん2014/08/12(火) 09:06:36.78ID:5U2rS/IR
面白そうなツールだな
0497デフォルトの名無しさん2014/08/12(火) 14:26:34.31ID:Hfmn/cHa
UWSCみたいな感じで動かせそうだな〜って思ってる。
別過去スレでやってる人がいて、その人のスクリプトはこんな感じなのね。↓

まだボタン一つ押せただけで大した事できてないけど、、、
スクリーンショットとって、PCで画像切り抜き、サイズ変えないで保存して上手くいった。
あいぽんで編集するとサイズ変わってしまって上手くいかなかった。
あとはマニュアル通り

ボタンの画像を少し小さめに切抜き、find image
すると、ボタンの中の座標返すからそのままtouchdown
してあげると良いみたい

local ok;

ok = findImage{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ok.png", count=1};
for i, v in pairs(ok) do
touchDown(0,v[1],v[2]);
usleep(100000.00);
touchUp(0,v[1],v[2]);
end
画像はこんな感じ。カメラロールに保存しちゃうと拡大されちゃうけど、ホントは等倍ね
http://i.imgur.com/nJymDHf.jpg

とのことなんよ。画像を見つけたらfor以下をループってことなのかな?
0498デフォルトの名無しさん2014/08/12(火) 18:35:02.04ID:XJm7PWEz
書いてあることそのままじゃね?
何が分からないんだろ
0499デフォルトの名無しさん2014/08/12(火) 20:58:16.89ID:Hfmn/cHa
上手く認識してくれないんだわ。。
angeっていう画像を見つけたらタップっていう動作を組む方が簡単そうなので
findImageTap{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ange.png", count=1};
っていうのに変えてもうまくいかない。

iphoneでスクショ撮る→PC繋いで画像ダブルクリック。スクショしてペイントに貼り付け。4×4ドットで切り取りしてange.pngで保存。
iexplorer経由でIMGフォルダに保存。
そもそもの画像の保存方法がダメなのかな?
0500デフォルトの名無しさん2014/08/12(火) 21:54:52.06ID:XJm7PWEz
findImageTapじゃなくてfindImageを使って
マッチしてるか確認
local result = findImage{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ange.png", count=1}
alert(#result)
これが0なら拾えていないので画像に問題ありなので画像作成に工夫する
1なら拾えているので他に問題あり
考えられるのはtap対象自体がイベントを処理していないか
当たり判定の範囲外
前者は手動でtapして反応するか確認
後者はresultの中身に入った座標を参考にしながらtap関数で確認

alertの仕様が分からないので
alert(tostring(#result)) や
alert(""...#result)などとする必要が有るかも知れない
0501デフォルトの名無しさん2014/08/12(火) 22:22:09.25ID:Hfmn/cHa
丁寧にありがとう。
local result = findImage{imagePath="/var/mobile/Library/AutoTouch/Scripts/IMG/ange.png", count=1}
alert("#result")
で反応無かったので画像の保存の仕方がいけなかったみたい。
ちょっと保存方法変えてみます。
0502デフォルトの名無しさん2014/08/12(火) 22:37:13.67ID:XJm7PWEz
>>501
>alert("#result")
誰がそんな事言ったよ
てかそれで反応がないならおかしいぞ
0503デフォルトの名無しさん2014/08/12(火) 22:38:29.15ID:wYq/8Bw7
ホスト環境側の制限なんかで、コード通りに動いてくれないときのデバッグが一番面倒だよね。
0504デフォルトの名無しさん2014/08/12(火) 23:01:41.48ID:XJm7PWEz
エミュもなく実機テストオンリーじゃ地獄だね
https://teachme.jp/contents/16546
見る限りリモートデバッグも出来るようだから
そっちの環境を作るのが先かもね
0505デフォルトの名無しさん2014/08/25(月) 10:39:27.72ID:BL3IV/EG
ChaiScript ( http://chaiscript.com/ ) って試した人います?
組み込みの文字列、配列、連想配列に std::string, vector, map を
そのまま使っているほどには、C++のクラスをバインドするには親和性が高そう。
比較的、型の扱いが厳密なのが特徴かな。 クロージャは無いかも。
0506デフォルトの名無しさん2014/08/25(月) 18:26:32.35ID:eFSdMsqd
イラネ
0507デフォルトの名無しさん2014/08/25(月) 19:18:08.37ID:8RrIpfE5
>>505
割とオーソドックスな文法だね
defでの関数定義時に、annotationとguardを設定できるのはちょっと面白い
(いまいち使い道は思いつかない)
バージョン5.3まで行ってる割にはドキュメントが弱そうに(個人的には)見えるけど
それだけシンプルって事なのか、それともdoxygenの使用にこだわっているせいなのか
0508デフォルトの名無しさん2014/08/25(月) 21:14:31.71ID:wLUoTrN4
>>507
C++による仮想コードでスクリプトのドキュメントを生成していて、
doxygenの中にスクリプトとC++ APIの両方が書かれているみたい。
ただ、":=" と "=" の動作の違いとか、基本的なことが書かれてない気がする。

割り切った設計はなかなか面白いのだけど、いろいろと惜しいな。
0509デフォルトの名無しさん2014/08/26(火) 09:41:08.11ID:laXhI8kB
マニュアル酷いなぁ

Function Definition ::= [annotation + CR/LF] "def" identifier "(" [arg ("," arg)*] ")" [":" guard] block

annotation ::= ???
CR/LF ::= ???
identifier ::= ???
arg ::= ???
guard ::= ???
block ::= ???

訳わからん
0510デフォルトの名無しさん2014/08/26(火) 12:16:11.13ID:c1R9OiEG
ん? そこは数少ない「訳わかる」ところじゃないのか?
関数定義のシンタックスが書いてあるだけだぞ。

annotation: meta-annotation on function, currently used as documentation. Optional.
identifier: name of function. Required.
args: comma-delimited list of parameter names. Optional.
guards: guarding statement that act as a prerequisite for the function. Optional.
{ }: scoped block as function body. Required.
0511デフォルトの名無しさん2014/08/26(火) 21:00:26.29ID:CrpVQ0De
>>509
これが訳分からんならお前には色々と難しいな
0512デフォルトの名無しさん2014/08/26(火) 21:58:18.18ID:laXhI8kB
>>510
非終端記号混じりで定義するなら
それらの定義もしっかりやれよって話

>>511
俺には無理
annotation
1行目のみ#までの空白タブは読み捨てるが2行目移行は読み捨てない
Annotationとキーワード"def"がある行の間に空行はいくら入ってもいいが空白行やコメントは不可
こんなソース見なきゃ分かんねーよ
0513デフォルトの名無しさん2014/08/27(水) 06:44:36.56ID:4iKpxsh4
>>512
確かにannotationは説明不足だな
他のコメントは // でも /* */ でもいいのに、ここは # のみだし
複数行の扱いとか、get_annotation() で先頭の # が除外されないのも微妙

マニュアルがどうこう以前に、annotationの仕様がこなれていないんじゃないかな
「関数の直前のコメントは、その説明とみなす」というアイデアは嫌いじゃないが
0514デフォルトの名無しさん2014/08/27(水) 07:39:39.64ID:3/KZIqq3
イラネ
0515デフォルトの名無しさん2014/08/27(水) 07:50:51.23ID:EpvBGjSy
Lua原理主義者さん鬱陶しいな・・・
0516デフォルトの名無しさん2014/08/27(水) 09:13:33.41ID:6IT+XF7c
ライバルにストレスを与えるのは当たり前だ
競争原理が鬱陶しいなら競争をやめればいい
0517デフォルトの名無しさん2014/08/27(水) 15:44:42.46ID:4iKpxsh4
>>505
多少複雑なことをやろうとすると segfault で落ちる。
GCがC++任せ(参照カウント)なのに、オブジェクトの生存期間の制御が甘いようだ。
良いバインダではあるけど、良いエンジンではないな。
0518デフォルトの名無しさん2014/08/28(木) 13:22:05.82ID:wsbnD5TY
>>495と同じようにauto touchで動かすLuaの質問してもいいかな?
0519デフォルトの名無しさん2014/09/01(月) 03:56:01.22ID:ruMjAUJp
>>518
いいよ
寂れてるし。
0520デフォルトの名無しさん2014/09/07(日) 20:51:30.64ID:ppGxj2XK
と言っても質問なしw
0521デフォルトの名無しさん2014/09/07(日) 21:16:45.63ID:V4yJXxP4
もしかしたら行間を読み取ってダメだって言われたと思ったのかもしれない
0522デフォルトの名無しさん2014/09/08(月) 08:36:00.81ID:YMBZ0Z5D
> 491 名前:デフォルトの名無しさん[] 投稿日:2014/08/12(火) 02:19:26.71 ID:Hfmn/cHa [1/5]
> auto touchっていうアプリのスクリプトがLua言語でちんぷんかんぷんで。
> ここで質問してもいい?
>
> 492 自分:デフォルトの名無しさん[sage] 投稿日:2014/08/12(火) 02:55:05.48 ID:QZJQGyIx
> >>491
> いいよ
> 寂れてるし。

> 518 名前:デフォルトの名無しさん[sage] 投稿日:2014/08/28(木) 13:22:05.82 ID:wsbnD5TY
> >>495と同じようにauto touchで動かすLuaの質問してもいいかな?
>
> 519 自分:デフォルトの名無しさん[sage] 投稿日:2014/09/01(月) 03:56:01.22 ID:ruMjAUJp
> >>518
> いいよ
> 寂れてるし。
0523デフォルトの名無しさん2014/09/08(月) 08:43:07.21ID:YMBZ0Z5D
同じ文面でスルーされるってのはちと悲しかった
0524デフォルトの名無しさん2014/09/09(火) 08:11:02.05ID:2JmvO9sZ
2度あることは3度ある!
0525デフォルトの名無しさん2014/09/13(土) 13:49:43.66ID:HQ53r6lE
Luaの文法は組み込みじゃなくてLLとしても十分使えると思うんだよなぁ。
クロージャをなくして関数束縛とラムダに分離したらRubyよりも手軽に使えそう。
0526デフォルトの名無しさん2014/09/13(土) 14:34:10.13ID:xYGMnmOJ
LLとして利用するのにコンセンサスがいるのか?

というか規模から考えて現状でもRubyより手軽に使えるはずだし
ちょっと文法変えた程度じゃ手軽さの関係は変わらんだろう

ついでに文法だけならもっとマシな言語いくらでもあるだろ
Luaは処理系実装・実績を含めて初めて評価される類だと思う
0527デフォルトの名無しさん2014/09/13(土) 14:59:46.23ID:2mQgH8ds
localの宣言はLLじゃないな。
0528デフォルトの名無しさん2014/09/13(土) 15:33:20.77ID:y8nlksus
「LLとして使う」ってどういう文脈なんだろう?
一般業務なら Battery Included な環境のほうが便利なんじゃないか?
組み込み言語のライブラリの貧弱さは、サンドボックス内で使われるからこそ許される(し、好まれる)のでは。
0529デフォルトの名無しさん2014/09/13(土) 17:15:36.86ID:CqCzoC9O
local宣言はブロックの途中から終わりまでのスコープを作る
つまり宣言の内容より位置に意味があるから省略できない
0530デフォルトの名無しさん2014/09/13(土) 17:22:33.96ID:xYGMnmOJ
宣言した位置で意味が変わるようなコードはクソだから
配慮しなくてもいいような
0531デフォルトの名無しさん2014/09/13(土) 17:39:51.70ID:y8nlksus
>>529
Luaではlocalを省略するとグローバル変数になるから、位置以前の問題では。

>>530
C++だと変数の宣言位置によって、そのコンストラクタが走るタイミングが変わるぞ。
0532デフォルトの名無しさん2014/09/13(土) 17:40:19.61ID:CqCzoC9O
gotoは行き先の名前を考えるけど構造化プログラミングは位置を考える
これが大成功してしまったから
位置の考え方は間違ってないと思う
0533デフォルトの名無しさん2014/09/13(土) 17:58:11.94ID:xYGMnmOJ
>>531
C++でもコンストラクタが走るタイミングで結果が変わるコードは
クソに分類されると思うが

菱形継承がタブーなのを見れば明らか

>>532
構造化プログラミングで考える「位置」は
階層で十分であって「行」ではないような
0534デフォルトの名無しさん2014/09/13(土) 18:13:48.15ID:2iAULK/t
「クロージャを関数束縛とラムダに分離」ってどういう意味?
function宣言ってそもそもクロージャの作成と変数への代入のシンタックスシュガーに過ぎないんじゃなかったっけ?
■ このスレッドは過去ログ倉庫に格納されています