トップページtech
582コメント172KB

プログラミング言語 Lua

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Lua について語ろう。

http://www.lua.org/
0002デフォルトの名無しさんNGNG
ぅあ
0003デフォルトの名無しさんNGNG
せめて、もうちょっとリンク貼ってくれよ。
0004デフォルトの名無しさんNGNG
5行くらいLuaのサイトのabout読んだけどどういう言語かよく分からんぞ。

>>1は責任を持ってどこがどうパワフルでライトウェイトな言語なのか説明汁。
0005デフォルトの名無しさんNGNG
言語虫?
0006デフォルトの名無しさんNGNG
VM?
0007デフォルトの名無しさんNGNG
Lua FAQ
http://www.lua.org/faq.html

プログラミング言語Luaの紹介
http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html

プログラミング言語Lua
http://www.etl.go.jp/etl/divisions/~ueno/lua/docj/indexjp.html
0008デフォルトの名無しさんNGNG
これって、なにがうれしいの?
0009デフォルトの名無しさんNGNG
>>7
言語仕様にあまり癖がなくてライブラリサイズが小さいのはいいね。
組み込むアプリがないとしょうがないが。
0010デフォルトの名無しさんNGNG
ヽ(`Д´)ノルァ!
0011デフォルトの名無しさんNGNG
無意味に同型の言語増やしても意味無いと思うんだ。最近。
0012デフォルトの名無しさんNGNG
Ruby一つで充分だよね
001311NGNG
いや、Rubyなんていらね
0014デフォルトの名無しさんNGNG
Rb <- ルビジウム
0015デフォルトの名無しさんNGNG
TTS!
0016デフォルトの名無しさんNGNG
同型って?(w
増やしてもいいけど取り上げる必要は無いと思うね。
0017デフォルトの名無しさんNGNG
>>12 >>16
同意。特別嬉しいことが具体的にないのなら。
0018デフォルトの名無しさんNGNG
Rubyは処理系がださすぎ
初心者丸出しのインタプリタじゃないか!
0019デフォルトの名無しさんNGNG
>>11
同感。新しいのを出すなら、何らかのパラダイムシフト、または既存言語への
アンチテーゼがあるべきと思います。
0020デフォルトの名無しさんNGNG
既存言語に対する,同人誌みたいなもんだろ
0021デフォルトの名無しさんNGNG
>>20
はぁ?意味わかんね
0022デフォルトの名無しさんNGNG
頭にGoをつけて新言語とするためのネタ言語。
0023デフォルトの名無しさんNGNG
マイナー言語のスレ立てるのはいいが、>>1はその後のフォローもやれよな。
スレ立てるだけならサルでも出来るぞ。
0024デフォルトの名無しさんNGNG
 ∧||∧
(  ⌒ ヽ >>1
 ∪ 。ノ
  ∪∪
0025デフォルトの名無しさんNGNG
前ベンチやってるページ見たらかなり速かったね。るbyとか言う言語よりも♠
0026デフォルトの名無しさんNGNG
文章で説明されるよりサンプルプログラムがいくつかあると理解が早いと思うんだけどな。
0027デフォルトの名無しさんNGNG
他言語と貶める過激な紹介文がないと普及しないよ。
0028デフォルトの名無しさんNGNG
>>27 その点でもRubyは先進的だよね。
0029Ruby!!!!!!!!!!!NGNG
sonoとおり!
0030bloomNGNG

http://homepage.mac.com/bloombloom/
0031デフォルトの名無しさんNGNG
↑Ruby使いは必見!!
0032デフォルトの名無しさんNGNG
ふぉお
% lua -e 'for i=1,10000000 do end; print(clock())'
0.3359375
% perl -e'for($i=1;$i<10000000;$i++){}; ($u,$s,) = times; print $u+$s,"\n"'
5.78125
% ruby -e'for i in 1..10000000 do end; t = Time.times; p t.utime+t.stime'
3.7578125
%
0033デフォルトの名無しさんNGNG
Lua Versus Python
ttp://lua-users.org/wiki/LuaVersusPython
0034デフォルトの名無しさんNGNG
local create = function()
  local t = {content=nil}
  
  local get = function()
    return %t.content
  end

  local set = function(c)
    %t.content = c
  end

  return {get = get, set = set}
end

local o1, o2 = create(), create()
o1.set(1)
o2.set(2)
print(o1.get())  -- 1 が出力される
print(o2.get())  -- 2 が出力される
0035デフォルトの名無しさんNGNG
とにかく軽くて小さいのはいいぞ。組み込み系な雰囲気。
最近ゲームやゲーム用にライブラリに結構使われてる模様。
Pythonもいいが、ひたすら重厚長大だしな。
0036デフォルトの名無しさんNGNG
通報しますた
0037デフォルトの名無しさんNGNG
どこに?
0038デフォルトの名無しさんNGNG
行末に' ; 'が不要な言語は気持ち悪くて使いたくならない。

「 ' ; 'を付けてもよい 」と書いてあるから
自分で書くぶんには付ければよいだけだが
サンプルプログラムを読むだけでも気持ち悪い。

いつのまにか' ; '無しでは生きていけない身体になってしまってる。
0039デフォルトの名無しさんNGNG
>>38;
C系言語中毒ですね;
お大事に;
0040デフォルトの名無しさんNGNG
>>38
Pascal(Delphi)やBasicみたいに区切りに;を使うのを見ると混乱する人ですか?
0041デフォルトの名無しさんNGNG
lua.org落ちてる?
0042デフォルトの名無しさんNGNG
Cマガで一度見たきりだな
0043デフォルトの名無しさんNGNG
> chunk ::= {stat [';'}]
まあ、いやけりゃつけろってことだな。
0044デフォルトの名無しさんNGNG
まあ、プログラマでないスクリプターさんには
いちいちセミコロン忘れてエラー出るよりありがたいだろう。

0045デフォルトの名無しさんNGNG
スクリプト言語にも「速さ」が求められる時代なんですね。
・・・って昔からそうだろうけど。
0046デフォルトの名無しさんNGNG
(2..4).map{|e|e*2}.reverse #=> [8, 6, 4]

↑これは Lua ではどう書けるの?
0047デフォルトの名無しさんNGNG
(8,6,4)
0048デフォルトの名無しさんNGNG
いまLuaの処理系ないけど調べてみる。
0049デフォルトの名無しさんNGNG
iota と map と reverse を書けば

reverse(map(function (i) return i*2 end, iota(2,4)))

とかでいいんじゃない?
Lua知らないから通るかどうか知らんが。
005046NGNG
>>49
なるほど〜、ありがとう
0051デフォルトの名無しさんNGNG
-- Y combinator
function I(x) return x end

function Y(f)
  return I(function (x) return %f(x(x)) end)(
    function(x)
      return %f(function(arg) return %x(%x)(arg) end)
    end
  )
end

local fact = Y(
  function(f)
    return function(x)
      if x == 0 then
        return 1
      else
        return(x * %f(x-1))
      end
    end
  end
)

print(fact(5))  -- 120
0052luaでGo!NGNG
>>35>最近ゲームやゲーム用にライブラリに結構使われてる模様。ゲーム用ライブラリやプログラムのサンプルなど、どこかにないですか?
0053デフォルトの名無しさんNGNG
ふと「ひょっとしてPHPレベル?」という疑念が浮かんだのだが。。
0054名無しさん@EmacsNGNG
いつの間にかLuaのスレッドが出来てたのね。
Lua 3.2の頃に同人ゲームで使ったことある。さくさく使えて楽しいよ。
Lua 5.0になって色々変わって面白そう。またやろうかな。

>>52
> ゲーム用ライブラリやプログラムのサンプルなど、どこかにないですか?

とりあえず思いつく限りではこんな感じ。他にもLua使っているゲー
ムはClanlib使っているゲームの中にちらほらとある。

[GraphicFrontend]
ttp://www.gime.org/twiki/bin/view/Gime/GraphicFrontend

[Clanlib]
http://www.clanlib.org/

[LuaSDL]
http://tulrich.com/geekstuff/index.html

[engine testbed]
http://sourceforge.net/projects/tu-testbed

[Soul Ride]
http://soulride.com/
0055デフォルトの名無しさんNGNG
>>53
そのレベルというのがどういう観点かわからないけど、
PHPにクロージャはない。luaにはある。

言語としての表現力はかなりレベルが違う。
0056デフォルトの名無しさんNGNG
参考リンク
http://dmoz.org/Computers/Programming/Languages/Lua/
0057デフォルトの名無しさんNGNG
あまり面白げなページないな。
0058デフォルトの名無しさんNGNG
全然盛り上がらんな(笑)

式を評価させるために利用してるよ、自前実装面倒なんで

ttp://staff.aist.go.jp/yutaka.ueno/lua/spe96jp.html
の「2.Luaを作った理由」辺りを読んで使えると思った
やつだけが使えば委員でないの?
005958NGNG
で、WinでSJIS日本語の一部の文字(0x5cを含む文字「ソ」とか
「表」とか)がうまく扱えないんで手抜き日本語対応パッチ
(lua-4.0.1用、ビッグエンディアンの人はそれなりに変更すれ)

llex.c 236行から273行
 switch (LS->current) {
  case EOZ: case '\n':
  // 略
 }

 if (_mbsbtype((unsigned char*)&LS->current, 0) == _MBC_LEAD) {
  save_and_next(L, LS, l);
  save_and_next(L, LS, l);
 } else {
  switch (LS->current) {
   case EOZ: case '\n':
   // 略
  }
 }
と変更
006058NGNG
ゲームに組み込むとしたらロードとセーブに対応させないと
いけないんだが、いちいち変数ごとに処理するの面倒なので
lua_Stateの状態をそのまま保存・復帰できないのか調査中
やった人居る?
■ このスレッドは過去ログ倉庫に格納されています