2011-10-30 10 views
1

私はLuaプログラミングに関するいくつかの研究を行ってきましたが、私はまだそれが動作することができるパラダイムについて混乱しています。どのプログラミングパラダイムルアを使用することができますか?

いくつかのチュートリアルでは、オブジェクト指向プログラミング用にLuaが作成されていないことがわかりました。しかし、彼らはOOPのためにも働くことができると言う他の人々です。だから、どのプログラミングパラダイムが最善に機能するかを見ています。

+3

http://www.inf.puc-rio.br/~roberto/docs/ry09-03.pdf –

答えて

3

ルアは、imperative languageであり、 functional programmingには理想的ではありません。

それ自体は、Luaは、procedural languageです。しかし、そのデータ構造の単純さ(それはちょうど1つしかありません:テーブル)があれば、その上に「レイヤー」を追加してobject oriented languageにするのは非常に簡単です。最も基本的な継承ルールは、わずか10行のコードで実現できます。しかし、より洗練された経験を提供するライブラリがいくつかあります。私の図書館middleclassは、合計140語です。

Luaを使用するもう1つの優れた方法は、scripting languageです。それは小さく、速く、標準的なCのものだけを使用し、標準のlibは小さめです。一方、それはjavaのように "電池が含まれて"付属していません。

最後に、私はそれがデータ表記言語として非常に有用であることを発見しました。 JSONに非常によく似た形式で生データを表現できます。

一般に、私はルアがjavascriptに非常に近いと感じています。

+1

+1です。関数はファーストクラスの値であり、匿名である可能性があるため、非常に機能的な方法で使用できます。表記法は少しばかり言い表せないので、私はそれがその役目で理想的ではないことに同意します。 – RBerteig

8

ルアは「あなたがしたいことをやる」プログラミング言語です。それはパラダイムを選択しません。あなたが必要とするあらゆるパラダイムを自由に使える便利な機能のバッグです。それは機能的な言語機能を持っていませんが、ファーストクラスのオブジェクトと適切なレキシカルスコープとしての機能を備えています。あなたが望むなら、それを機能的に使うことができます。 「クラス」や他のプロトタイプはありませんが、データをカプセル化する方法と、「this」オブジェクトを持つ関数を呼び出すための特別な構文があります。だから、それを使ってオブジェクトを構築することができます。

ルアはあなたが何をするかを指示しません。それはあなた次第です。あなたが望むあらゆるパラダイムを簡単に構築できる低レベルのツールを提供します。

+0

* bad * - > * bag *を読んでください。 – lhf

関連する問題