Ich habe einen Datentyp, der einen Funktionswert enthält und ich möchte show
und read
es. Ich weiß, dass ich die Funktion nicht zurück lesen kann, deshalb möchte ich eine Möglichkeit, die Funktion beim Lesen anzugeben.Show und Read-Instanz für einen Datentyp mit Funktionen
Hier ist meine Datentyp:
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 ++ ")"
Und ich möchte eine Funktion wie folgt aus:
readLayer :: String -> Activation -> Layer
Wie würde das funktionieren?
Vielen Dank im Voraus
Nun, Sie ignorieren es beim Shoiwng, also was möchten Sie den Funktionswert beim Lesen füllen? –
Normalerweise würde ich dafür die Funktion 'String -> String -> Aktivierung -> Layer 'verwenden. Aber was hast du probiert, welche Fehler bekommst du? Können Sie eine einfache Funktion erstellen, die einen 'String'" liest "und ein' [Double] 'erzeugt, dann können Sie' Vector.fromList' nützlich finden. – epsilonhalbe
Beachten Sie, dass sich dieser 'readLayer' von der üblichen' Read'-Instanz unterscheidet! – epsilonhalbe