タグ

PythonとDSLに関するikeikeikeikeのブックマーク (2)

  • PythonはDSLが苦手? - atsuoishimoto's diary

    PythonはDSLが苦手でしょうか、って話をチラッと目にした。あんまりDSLって知らないけど、そんなに得意ってことはないんじゃないかと思う。Pythonってのは構文的に遊びが少ないように考慮して作られてるし、そもそもPythonは「実行可能な擬似コード」って言われるぐらいにシンプルなんで、わざわざ新しくDSLを仕立てなくても、って気もする。 ただまあ、工夫の余地がないかというとそうでもなくて、例えば if not INPUT: EXIT SORT REVERSE PRINT のような、独自言語っぽい見栄えのコードを書けないってこともない。上のコードは、コンソールから一行読み込んで、文字をソートしてひっくり返し、コンソールに出力するPythonスクリプトだ。 えーと、上のコード、Pythonスクリプトと言ったのは嘘ではないけど、実行時にちょっと細工がいる。こんな感じで起動しなければならない

    PythonはDSLが苦手? - atsuoishimoto's diary
  • python/hack 属性シンタックスによるによるミニDSL。 - karasuyamatenguの日記

    # -*- coding: utf-8 -*- """ 近頃はスクリプト言語のシンタックスを乱用、じゃなくてクリエイティブに使って違う言語のようにすると「DSL」と呼べるらしい。 ならテングもpythonでマイクロDSL。 """ def main(): """ ベースクラス。ディフォルトの挙動(はつまらない)。 """ hoge=AttrChain() print hoge.foo.bar.baz # >>> foo.bar.baz """ 「.」によるパス表記 """ class PathAttrChain(AttrChain): def _end(self, path_func=lambda p: p): import os.path path=os.path.join(self.kw.get('base','/'), *self._tuple()) return path_func

    python/hack 属性シンタックスによるによるミニDSL。 - karasuyamatenguの日記
  • 1