私は現在、Lua を組み込み、それを美化されたインテリジェントな構成ファイルとして使用しています。しかし、人々が Lua の使い方を絶賛しているので、何かが足りないと思います。
たとえば、次の例を示すことで、C の代わりにシェル スクリプトを使用する理由を簡単に説明できます (確かに、boost regexp はやり過ぎです)。
#include <dirent.h>
#include <stdio.h>
#include <boost/regex.hpp>
int main(int argc, char * argv[]) {
DIR *d;
struct dirent *dir;
boost::regex re(".*\\.cpp$");
if (argc==2) d = opendir(argv[1]); else d = opendir(".");
if (d) {
while ((dir = readdir(d)) != NULL) {
if (boost::regex_match(dir->d_name, re)) printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
それを次と比較します。
for foo in *.cpp; do echo $foo; done;
Luaで「クリック」できる例はありますか?
EDIT:おそらく私の問題は、Cコードを書く方が簡単だとわかっているので、Luaを流暢に使用するのに十分な知識がないことです。
EDIT2:
1 つの例は、C++ と Lua でのおもちゃの階乗プログラムです。
#include <iostream>
int fact (int n){
if (n==0) return 1; else
return (n*fact(n-1));
}
int main (){
int input;
using namespace std;
cout << "Enter a number: " ;
cin >> input;
cout << "factorial: " << fact(input) << endl;
return 0;
}
ルア:
function fact (n)
if n==0 then
return 1
else
return n * (fact(n-1))
end
end
print ("enter a number")
a = io.read("*number")
print ("Factorial: ",fact(a))
ここでは、プログラムは似ていますが、明らかに、include、namespace、および main() の宣言には、削除できる不備があります。また、変数宣言と強い型付けを削除します。
今、人々はこれがより大規模なプログラムに追加される利点であると言っていますか、それともそれ以上のものがあるのでしょうか? これは、bash の例と同じようには目立ちません。