@@ -67,13 +67,30 @@ data R = No | Yes
6767 deriving (Bounded, Enum, Eq, Show, G.Generic)
6868
6969rain :: Matrix Double () R
70−rain = col [0.8, 0.2]
70+rain = matrixBuilder gen
71+ where
72+ gen (_, No) = 0.8
73+ gen (_, Yes) = 0.2
7174
7275sprinkler :: Matrix Double R S
73−sprinkler = fromLists [[0.6, 0.99], [0.4, 0.01]]
76+sprinkler = matrixBuilder gen
77+ where
78+ gen (No, Off) = 0.6
79+ gen (No, On) = 0.99
80+ gen (Yes, Off) = 0.4
81+ gen (Yes, On) = 0.01
7482
7583grass :: Matrix Double (S, R) G
76−grass = fromLists [[1, 0.2, 0.1, 0.01], [0, 0.8, 0.9, 0.99]]
84+grass = matrixBuilder gen
85+ where
86+ gen ((Off, No), Dry) = 1
87+ gen ((Off, Yes), Dry) = 0.2
88+ gen ((On, No), Dry) = 0.1
89+ gen ((On, Yes), Dry) = 0.01
90+ gen ((Off, No), Wet) = 0
91+ gen ((Off, Yes), Wet) = 0.8
92+ gen ((On, No), Wet) = 0.9
93+ gen ((On, Yes), Wet) = 0.99
7794
7895tag f = kr f iden
7996