タグ

ブックマーク / jutememo.blogspot.com (2)

  • Haskell でデータコンストラクタによるパターンマッチ

    0. 目次 let 式でパターンマッチを利用 パターンマッチは、代数的データ型の値を分解して、値を取り出す パターンを利用できる場面は 6 つある case 式におけるパターンマッチ パターン束縛におけるパターンマッチ ラムダ抽象におけるパターンマッチ リスト内包表記におけるパターンマッチ do 式におけるパターンマッチ 1. let 式でパターンマッチを利用 パターン束縛とは,左辺がfun x ... のような関数ではなく,Just xや(x,y)などのようなパターンになる等式のことです。パターン束縛はトップレベルで定義するよりもlet式などで利用することのほうが多いと思うので,… (第8回 遅延評価の仕組み:ITpro より、太字は引用者による) ん? (@_@) let 式でもパターンって使えたんだ。 let 式 と言えば、 *Main> let x = 100; y = 200 i

  • Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って

    1. メソッドをクラスメソッドにするときは、デコレータを使う あるメソッドをクラスメソッドにするとき、 Python ではデコレータを使うことができる。 2.1 組み込み関数 によると、(太字は引用者による) classmethod( function) function のクラスメソッドを返します。 クラスメソッドは、インスタンスメソッドが暗黙の第一引数としてインスタンスをとるように、第一引数としてクラスをとります。クラスメソッドを宣言するには、以下の書きならわしを使います: class C: @classmethod def f(cls, arg1, arg2, ...): ... ふーむ、ここでも第一引数が必須で、それがクラスを参照するということか。Python のこういう書き方は、最初とっつきにくいと感じた。 (+_+) デコレータの書き方としては、関数の前に @classmeth

    Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って
  • 1