小编gat*_*ado的帖子

haskell - 是-ddump-simpl是获得具体类型的最佳方法吗?

我以前编写过一个似乎有效的函数,但不幸的是我没有很好地编写代码,现在必须再次弄清楚[我正在修改我正在使用的monad变换器堆栈].

run_astvn ::
    LowerMonadT (StateT LowerSketchData Identity) ?
    -> Seq SketchAST
run_astvn x = get_ast2 $ runIdentity $
    runStateT (runStateT (runStateT x empty) empty)
        (LowerSketchData Set.empty)
    where get_ast2 = snd . fst
Run Code Online (Sandbox Code Playgroud)

我想得到具体的类型get_ast2.我似乎能够-ddump-simpl通过我的终端输出添加标志和grep,直到我找到,(清理了一点)

(((?, Seq SketchAST), Seq SketchAST), LowerSketchData) -> Seq SketchAST
Run Code Online (Sandbox Code Playgroud)

(对不起,这对其他人来说可能是胡说八道,但关键是它对我有用.)有更快/更方便的方法吗?如果不是很明显,在这种情况下我所说的"具体"是指上述类型是有用的; 知道的类型snd . fst不是:).

debugging haskell types ghc concrete

3
推荐指数
1
解决办法
357
查看次数

存在量化的类型示例在ghc 7.2.2中失败

根据维基百科,下面的代码应该编译,

{-# LANGUAGE RankNTypes #-}
data T = MkT (exists a. Show a => a)
Run Code Online (Sandbox Code Playgroud)

但是,我没有运气.ghci 7.2.2抱怨,

test.hs:2:23:
    Illegal symbol '.' in type
    Perhaps you intended -XRankNTypes or similar flag
    to enable explicit-forall syntax: forall <tvs>. <type>
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

原始链接在这里:http://en.wikibooks.org/wiki/Haskell/Existentially_quantified_types

提前致谢!

haskell ghc higher-rank-types

3
推荐指数
1
解决办法
805
查看次数

GHC.Prim.Any创建而不是自由变量[在多态函数中]

这是一个错误吗?

{-# LANGUAGE NoMonomorphismRestriction #-}
import qualified Text.Parsec.Token as P
import Text.Parsec.Language (haskellDef)
(P.TokenParser { P.identifier = ident }) = P.makeTokenParser haskellDef
Run Code Online (Sandbox Code Playgroud)

ident类型的收益率Text.Parsec.Prim.ParsecT String GHC.Prim.Any Data.Functor.Identity.Identity String,而定义

haskell = P.makeTokenParser haskellDef
ident = P.identifier haskell
Run Code Online (Sandbox Code Playgroud)

产生一种类型 Text.Parsec.Prim.ParsecT String u Data.Functor.Identity.Identity String

编辑

ghci的行为不一样,

infixl 4 <++>
(<++>) = liftM2 (++)

(P.TokenParser { P.identifier = ident }) = P.makeTokenParser haskellDef
suitable_macro = ident

parseMacro = many space *> suitable_macro

parseMacro' =
    try (string "{{" *> parseMacro <* string …
Run Code Online (Sandbox Code Playgroud)

haskell field ghc

3
推荐指数
1
解决办法
358
查看次数

Android - 如何从Eclipse LogCat过滤控制台垃圾邮件?

默认的Eclipse LogCat窗口包含来自VM等的大量控制台垃圾邮件.如何删除这些邮件?看来,唯一的过滤器现在是过滤一种表现,而不是过滤掉垃圾邮件.

eclipse android logcat

3
推荐指数
1
解决办法
2269
查看次数

如何通过F#的Seq.cast避免"价值限制"错误?

我看到Seq有一个从IEnumerable到Seq的强制转换功能,但是如何让它工作呢?

open System.Text.RegularExpressions;;
let v = Regex.Match("abcd", "(ab)");;
Seq.cast (v.Captures);;
Run Code Online (Sandbox Code Playgroud)

这会产生,

错误FS0030:值限制.值'it'被推断为具有泛型类型val:seq <'_ a>
将'it'定义为一个简单的数据项,使其成为具有显式参数的函数,或者,如果您不打算使它是通用的,添加类型注释.

.net ienumerable f# restriction

2
推荐指数
2
解决办法
653
查看次数

Haskell - 将Data.Dynamic放入Map中的任何简单方法?

我想将Data.Dynamics 映射到其他Data.Dynamics.但是,我不能写

Map Dynamic Dynamic
Run Code Online (Sandbox Code Playgroud)

因为没有Ord Dynamic.有没有任何解决方案(比如DynamictoDyn功能只接受Ord事物的版本,并在拳击时提升类型类?)

这样做的动机是从EDSL编译器中的变量 - >值中获取一个映射.(显然,变量可以有不同的类型). 编辑:对不起,这个问题没有必要,我可以/应该只将变量名存储为密钥.但是,我仍然对这个问题感兴趣.

提前致谢!!

haskell map dynamictype

2
推荐指数
2
解决办法
364
查看次数

在Haskell中没有更多状态monad版本的哈希映射/集合?

散列集和映射的monadic接口是否在Haskell中消失了?在使用现代版本时,我应该考虑什么样的性能模型?(Data.Map,Data.HashMap,Data.HashSet).它们在我的版本中似乎没有任何IO代码(ghc 7.0.2),

> :browse Data.HashSet
type HashSet a = Set a
newtype Set a
  = Data.HashSet.Set (Data.IntMap.IntMap (Data.HashSet.Some a))
(\\) :: Ord a => Set a -> Set a -> Set a
delete :: (Data.Hashable.Hashable a, Ord a) => a -> Set a -> Set a
difference :: Ord a => Set a -> Set a -> Set a
elems :: Set a -> [a]
empty :: Set a
Data.HashSet.filter :: Ord a => (a -> Bool) -> Set a …
Run Code Online (Sandbox Code Playgroud)

hash haskell state-monad

1
推荐指数
2
解决办法
877
查看次数

flask-如何解决app.route / app.add_view_rule无法与闭包一起使用的限制?

显然,Flask的app.route/ app.add_url_rule不适用于闭包。例如,使用创建一个基本应用,

for name in ('/hi', '/bye'):
    app.add_url_rule(name, view_func=lambda: name)
Run Code Online (Sandbox Code Playgroud)

并查询它

dev:~/pg/yelp-main> curl localhost:9113/hi
/bye
Run Code Online (Sandbox Code Playgroud)

表明它不适用于闭包。解决此问题的最简单方法是什么?我可以强制Python实际上创建两个函数吗?

python flask

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