タグ

Phytonに関するcoppieeeのブックマーク (2)

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • Python風比較演算子をScalaで実装してみた - kmizuの日記

    Pythonでは0 < i < 10みたいに、数式っぽい形で数値の比較を行うことができる。これを、Scalaで(無理やり)エミュレートしてみた。汎用的に作ろうと思えば、もっと汎用的に作れるけどめんどいので、とりあえずInt型のみ対応。実装を見ればわかるけど、数式の構文木を作ってそれをevalしているようなものなので、(たぶん)かなり遅い。implicit conversionを使って、Boolean型が要求された時点で、比較演算の構文木をevalしてBoolean型を返すようにしているのがミソ。 object Op extends Enumeration { val LT = Value("<") val GT = Value(">") val LTE = Value("≦") val GTE = Value("≧") val AND = Value("∧") } import Op._

    Python風比較演算子をScalaで実装してみた - kmizuの日記
    coppieee
    coppieee 2009/07/18
    かっこいい
  • 1