来世ガチャ乱数調整日記

Lily, Bass & Programing

12/3は冴草きいちゃんの誕生日、ゆるゆり劇場版を観た、鎌倉に行った、XperiaZ2を無くした、Lua

追記 2015 03/18

"l\\u\\a\\5.3 utf8"で優先言語を日本語にしてGoogle検索するとこの記事が上位に来るなんて書いてる時に思ったわけ無いだろ!

今見ても内容がお粗末すぎるので勘弁してください。追記終わり


こんにちは、びしょ〜じょです。

言いたいことの9割はタイトルに書きました。


12/3は冴草きいちゃんの誕生日

最重要事項です。みんなで祝おう。

XperiaZ2を無くした

バイト先に行く途中のバスで無くした。送迎バスなので玄関のすぐ手前まで行き、ボクはそこで下車する直前まで触っていたのだが…。

もう1周間近く経ったので多分見つからない。

ゆるゆり劇場版を観た

@__mukiさんと公開初日に観に行った。感動した。作画はアニメ版と同じく安定しており、購入したパンフレットに書いてあったとおり画風は原作に寄せた感じだった。
なんといっても背景が(原作、アニメと比べ)繊細に描かれている!!
内容は割といつもの通りの日常だった。ゆるゆり12巻初回限定版についてくる小冊子の内容をもう一度読もう。
ネタバレは大罪なのでこの辺で。ただ一つ最高に可愛かったことは言っておきたい。

鎌倉に行った

なんとなく鎌倉の呼び声が聞こえた。T大の推薦入試による5連休最後の日―ゆるゆり劇場版を観た次の日にあたる―、祖母と行った。
津田沼からJR横須賀総武線快速で1.5h。近いような遠いような。
ちなみにT市から津田沼駅までも同じくらい。
1300くらいに到着した。

鎌倉といえば『青い花』を筆頭に、しばしば物語の舞台として扱われる。
少しくらいは聖地巡礼したいという気分もあったが、90%ほどはなんとなくな感情が覆っていたので鎌倉を舞台とした作品の予習なんていう時間は無かった。

大晦日でも何でも無いのに大勢の人が居た。
鎌倉って観光地だったのか…ところでJR鎌倉駅を降りたらデカい神社があるんですよ。
鶴岡八幡宮とかいう名前で有名なんですって。
そんなことすら全く知らないで行った。
神社を回ったら結婚式らしいものが行われていた。めでたい。 黒漆の白旗神社が格好良かった(小並感)。

それから江ノ電に乗った。ローカル線だし静かなんだろうと呑気なことを考えていたらとんでもない乗客量に仰天した。
ただでさえ4車両で小ぶりなんだぞ、もっといたわり給えよ。
窓から手を出せばひとんちの壁にぶつかってしまう区間がだいぶある程に地域密着(物理)型だった。
ボクはど田舎育ちで、実家から一番近い駅は17kmくらい離れていて全く使えなかったし、電車に乗る機会は帝都に出た時くらいなので、単線はだいぶ新鮮に映った。

なんとなく来たとは言ったが、なんとなくの中に海に行きたいという思惑が埋まっていたので、初めて車窓から海が見えたところで駅から降りた。七里ヶ浜駅。
とはいえ行くあてはなかったので海沿いの道を歩いた。砂浜もちょっと歩いた。

気づけばひと駅分歩いていた。浜辺で波に濡らされた靴を引きずる祖母と共に、鎌倉高校前駅から藤沢駅までまたオノデンに乗った。
藤沢駅についたのは1530。神社の参道から昼飯は食べようと思っていたが、鎌倉では何が名産で、どれを食べれば徳が積めるかなど考えていたら結局今の今まで何も食べないでいた。
祖母が虫歯を患っているらしく、固いものは食べられないようで。彼女は特にグラタンを所望していたので、駅ビルのイタリアン飯屋で遅い昼食をとった。ハイカラ娘め。

WORDのOBの方がご飯をおごるという会がその日の1830からだったが、ボクがチバラギスタン南部を発ったのは1830で、もうアホかと。
とりあえず行ったらタダ飯会はほとんど終了していた。
とりあえず小籠包と水をもらった。

Lua

最後までどうでもいいルポを読んだ人は多分ここを読まないし、ルポを読み終えなかった人はここまで読まないだろうから、一番どうでもいいことは最後に書こう。

最近Luaという言語を始めました。Luaの詳細はウィキピーディア先生などに聞いてください。
簡単に説明すると、高速な動的型付けのスクリプト言語だと思います。ウィキピーディア先生の概要のあたりを見れば多分もうすこしまともなことが書いてあります。

  • 唯一のデータ構造はtable{}

    いわゆる連想配列です。

t = {1, 2, 3, "a", "b", (function sum(a, b) return a + b end)}    
print(t.sum(1, 2)) --> 3    

なんでも入れられる。要素に名前も付けられて、上記では関数にsumという名前をつけてt.sum()という感じで関数を呼んでいる。
これはt["sum"]の糖衣構文で、後述するようにオブジェクト指向型言語テイストな書き方に貢献している。

ついでに--で以降右の文字はコメントになる。他にもコメントの方法はあるがカツアイ。

さらに言うと標準ライブラリは_Gというtableに入ってる。

  • マルチパラダイム

    関数がファーストクラスだったりクラスっぽいものを作って継承っぽいことをしたりできる。

(function (x) print(x) end) (3) --> 3

無名関数とかできる。かっこいい(雑)。

function addx (x)
    return function (y) return x + y end
end

functionも返せる。カリー化とかできるぞい。

t = {}
mt = {x = 1, y = 2}
setmetatable(t, {__index = mt})
print(t.x) --> 1

先ほどのtableにメタテーブルというものをくっつけることでtable同士で二項演算をしたり、別のtableから要素を持ってくるなどができる。

  • 速い

    Luaインタプリタ型言語だが、だいぶ速い。その理由はボクではなくGoogle先生などの有識者に聞いていただきたい。

  • 多機能

    コルーチンとかある(雑)。
    a, b = b, aという代入が許されているのでtmp()とか書かなくていい(雑)。

  • 残念な点

    • amazon内で"Lua"で調べるとタロット系の書物がいっぱい出てくる。スピリチュアルや。

      • 最近はLuaの本が増えているようだ。よかった。
    • 文字に弱い

      • Rubyを書いたあとにLuaを書くと文字のあたりでつまづく。ボクは日本人で日本語をよく使うので、マルチバイト文字をちゃんと扱ってほしいという願いがふつふつとこみ上げる。
string.len("a") --> 1
string.len("auieo") --> 5
string.len("あ") --> 3
string.len("あいうえお") --> 15

string.len(str)は察しの通りstring型strの文字数を返す関数だが…。Luaがブラジル発祥なのが悪いんや…。

  • ただしこれはLua5.2までの話で、Lua5.3ではutf8という型が生み出され、utf8.len("あいうえお")は大和の民に5を返してくれる。

  • とはいえstring型がUTF-8に対応したというわけではなく、悲しさはにわかに残る。

  • Rubystr.to_iにあたるtonumber(str)も、strに二項演算を書いてもうまく動いてくれなくて厳しい。

tonumber("51") --> 51
tonumber("51-2") --> nil
tonumber("51*1") --> nil

え、tonumber()ってそんな用途に使わないんですか。っていうくらいtonumber()の中身で計算をしようとしている人が居ない。ごめんなさい世間的にはボクが悪いようです。

追記(12/04 16:09)

function tonumber_ext
    local f = loadstring("return " .. str)
    return f()
end

でいけますね。作れっていうことでした。追記おわり。

  • regexpとpattern

    • Luaはpatternという正規表現風味なものをサポートしている。が…。

      バックスラッシュの代わりにパーセントを使っていて、繰り返し{}と後方参照がない。

      ギャハハーPOSIXBasic Regular Expressionくらい普通っしょ〜w

  • 1オリジン

    なぜなのか。

  • Luaユーザが少ない

    ツイッターLuaの悪口を言っても、Luaの疑問点を言っても、あまり反応がない。まぁ、多少はね。

Lua 蛇足

Luaは完全に名前で選んだので、何に使われているかしっかり調べるまで全く知らなかった。当初はC/C++の組込みを目的に作られ、最近ではゲームエンジンで活躍している。
アイマス2も一部Luaが加勢しているらしい。ほかにはNginxとかLuaLaTeXとかヤマハルータとかヴォカロとか。
現在ボクがデスクトップpcのArchLinuxで使っているタイル型WM "awesome" もLuaで記述されている。 二度目ですが詳細はウィキピーディアを見ろください。

めちゃくちゃどうでもいいんだけどはてブのMD記法ゴミ