[前][次][番号順一覧][スレッド一覧][生データ]

langsmith:255

From: YAMASHINA Hio <hio hio.jp>
Date: Fri, 22 Jul 2005 12:17:34 +0900
Subject: [langsmith:255] Perlの文法を持ったJavaベースのスクリプト言語- Sleep


  こんにちわ.
  山科です.
  
  こんな記事を見かけたのでご紹介. 
  
  http://pcweb.mycom.co.jp/news/2005/07/21/013.html
  Perlの文法を持ったJavaベースのスクリプト言語 - Sleep 2.0公開
  
  本家はこちら.
  http://sleep.hick.org/
  http://freshmeat.net/projects/sleepscript/
  
  perlと極似ているけれど所々違うのでperlコードをそのまま動かすのは
  無理な様です. 
  
  jarがあるので, java -jar sleep.jar xxx.sl でそのまま試せます. 
  -e はないのでわんらいなもどきには
  > echo 'println("hello")' | java -jar sleep.jar /proc/self/fd/0
  あたりで. (無理矢理
  
  スカラー・配列・ハッシュを扱うときは普通に記述するけれど, 
  Javaオブジェクトを扱うときは Objective-C っぽい記述を使うそうです. 
  `.' が文字列連結になるからそれの回避ででしょうか. 
  perlなんだし :: や -> をがんばって欲しい感も.
  
  
  適当につらつらと.
  
  $1, $2 は関数の引数(@_[0],@_[1]と一緒).
  関数呼び出しに()が必須. 
  die ないし知らない関数呼んでも警告でて素通りだし^^;;
  例外起きても伝播もしない模様. 
  checkError($var) で, 例外チェック&$varにエラーメッセージ取得まで. 
  
  配列・ハッシュの要素アクセスは @data[0], %hash["key"];
  $temp = @data[2][3];
  %foo["name"] = "Raphael";
  %hash = hash(letters => array("a", "b", "c", "d"),
               names   => hash(
                            rsm => "Raphael Mudge",
                            fvm => "Frances Mudge")
              );
  リファレンスはなくなってるぽい?
  代入は変数と=の間に空白ないと構文エラー(バグ?)
  
  正規表現周りもちょっと変化.
  while ('ABhCDEFeGHIJlKLMNlOPQRoST' hasmatch '[A-Z]{2}([a-z])[A-Z]{2}')
  {
     @array = matched();
     print(@array[0]);
  }
  完全一致用の ismatch と部分一致を繰り返す hasmatch.
  あとワイルドカードマッチで iswm がありました. 
  
  オブジェクトの扱い. 
  [[System out] println: "test" ]; # correct
  [System.out println: "test" ]; # wrong!
  ここでも . はだめらしい. 
  
  クロージャ. 
  $closure = {
     println("My name is: $1"); 
  };
  [$closure: "Raphael"];
  
  $myfunc = lambda({
     println("My initial name is $name");
  },  $name => "Raffi");
  [$myfunc];
  
  
  でわ〜♪

-- 
山科 氷魚 (YAMASHINA Hio) <hio hio.jp>



--
ML: langsmith quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]