小编Dee*_*ant的帖子

Haskell:如何编写monadic可变参数函数,使用monadic上下文的参数

我正在尝试使用monadic返回类型创建一个可变参数函数,其参数也需要monadic上下文.(我不知道如何来形容第二点:例如,printf可以返回IO (),但在它是否最终被它的参数将被视为相同的不同IO ()String).

基本上,我有一个数据构造函数,比如两个Char参数.我想提供两个指针样式ID Char参数,它可以State通过类型类实例从封闭的monad 自动解码.所以,get >>= \s -> foo1adic (Constructor (idGet s id1) (idGet s id2))我想做而不是做fooVariadic Constructor id1 id2.

接下来是我到目前为止所获得的文化Haskell样式,以防有人想复制它并弄乱它.

一,基本环境:

> {-# LANGUAGE FlexibleContexts #-}
> {-# LANGUAGE FlexibleInstances #-}
> {-# LANGUAGE MultiParamTypeClasses #-}

> import Control.Monad.Trans.State

> data Foo = Foo0
>          | Foo1 Char
>          | Foo2 Bool Char
>          | Foo3 Char Bool Char
>    deriving …
Run Code Online (Sandbox Code Playgroud)

monads haskell types variadic-functions typeclass

8
推荐指数
1
解决办法
532
查看次数

标签 统计

haskell ×1

monads ×1

typeclass ×1

types ×1

variadic-functions ×1