私は関数値を含むデータ型を持っていますが、show
とread
にできるようにしたいと考えています。私は関数を読み取ることができないことを知っているので、私は読んで関数を指定する方法が必要です。ここで 関数を持つデータ型のインスタンスを表示し、読み込みます
type Activation = (Vector Double -> Vector Double, Vector Double -> Vector Double)
data Layer = L { biases :: !(Vector Double)
, nodes :: !(Matrix Double)
, activation :: Activation
}
instance Show Layer where
show (L biases nodes _) = "(" ++ show biases ++ "," ++ show nodes ++ ")"
そして、私はこのような機能が欲しい:
readLayer :: String -> Activation -> Layer
どのように働くだろうか?
、レイヤーのためのあなたのショーのインスタンスは、ショーのインスタンスと同じであるreadLayer str f =
let (biases, nodes) = read str
in Layer { biases = biases, nodes = nodes, activation = f }
:ので、あなたはちょうどこれを行うことができ、レイヤを表示するために選択した道の事前
さて、あなたはそれを無視するので、読んでいるときに関数の値をどういったものにしたいですか? –
通常、私はそれを行うために 'String - > String - > Activation - > Layer'関数を使います。しかし何を試しましたか、どのようなエラーがありますか? 'String'を"読み込み "、' [Double] 'を生成する単純な関数を構築できますか?' Vector.fromList'が役に立つかもしれません。 – epsilonhalbe
この 'readLayer'は通常の' Read'インスタンスとは異なります。 – epsilonhalbe