2004-12-01から1ヶ月間の記事一覧

RubyObject

classを宣言した時に、(スコープ内に)クラスが既に存在していれば、 既存のクラスを拡張しそれを返す。Rubyの様なclassの振舞を提供するメタクラス。 import inspect class RubyMetaClass(type): def __new__(self, classname, classbases, classdict): try:…

[REBOL][Prototype]

REBOL [] person: make object! [ name: none age: none ] ; プロトタイプを生成 tea: make person [ name: "Tea" age: 24 ] probe tea ; probe はオブジェクトをdumpして表示する関数。 ; プロトタイプなので更に派生する事も可能。 foo: make tea [ name: …

[REBOL][HelloWorld] http://www.rebol.com/

REBOL [ Title: "Hello, world" File: %hello.r Date: 2004/12/20 Author: "Tea" ] print "Hello, world" REBOLの決まりで、REBOL の記述は最低限必要。実行時にチェックされます。 一行目に REBOL と書いておくと、vimでREBOLのスクリプトだと判断してくれ…

Stackframe

Pythonは、inspectionが優れていて 関数,コード,スタックフレームのオブジェクトにまで Pythonスクリプト上からアクセスできたりする。 import inspect def show_var(varname): """ 呼出元のローカル変数を表示 """ try: frame = inspect.currentframe() pri…

[Parrot][Python]

Python/Parrotの実装は現在3つ。 pie-thon (parrot ./languagesディレクトリ以下に収録) pirate (http://pirate.tangentcode.com/) pyrate (http://www.intertwingly.net/blog/2004/10/02/Pyrate) disやinspectモジュールのCPythonとの互換はどうなるのか気…

組み込み型 set, frozenset

ちょっと変な使い方かも知れないけど、応用で。 def uniq(args): return list(set(args))

sorted, reversed

式のなかで、リストの並べ変えが出来るようになり、 method chain や 副作用のないFPスタイルでのコードが書き易くなった。sortがcmd, key, reverseの引数を取るようになっので、 sortedでも第二引数以降にこれらのオプションを設定できる。

None constant.

と言う事で、Noneへの代入がSyntaxErrorになった。 でも、True, Flase への代入は相変わらず ... True, False = "A", "B"

[Python] 2.4

Releaseされたので早速インストール。新しい機能のテスト。 Generator Expression # 使い方: # リスト内包表現 [ ... ] の代わりに ( ... ) # リスト内包表現では新しいリストを作成して返す為、 # 巨大なリストをfor文で処理したい場合に、 # - 一時リスト…