2

In the purescript-free package, there is a code example defining this interpreter:

teletypeN :: forall eff. NaturalTransformation TeletypeF (Eff (console :: CONSOLE | eff))
teletypeN (PutStrLn s a) = const a <$> log s
teletypeN (GetLine k) = pure (k "fake input")

How can I define and run another interpreter where the return type is Array Int or State String Int?

4

1 回答 1

5

您不能解释为特定值,因为解释器是作为自然转换提供的 - forall a. f a -> g aa执行解释的函数不能“触及”这里。

您可以解释为Arrayor State String,但a将始终由您正在解释的结构决定。如果您知道您只想解释,Free MyAlgebra Int -> Array Int那么无论如何这一切都会解决。

于 2017-04-24T19:15:47.580 回答