1

我需要在 Haskell Diagrams 中找到一条路径的长度。

我发现函数stdArcLength似乎给了我长度。我不知道如何将其转换为 Int 或 Double。

roundfloor引发模棱两可的错误。我应该如何将这个(N p)(我不是什么)转换为 Double?

编辑:示例和错误。

我有一个函数mkPathLength :: Int -> Int -> AnimationAttribute,我首先尝试像这样调用它mkPathLength (stdArcLength l) 0。这给出了以下错误

无法将预期类型“Int”与实际类型“N p0”匹配类型变量“p0”不明确

可以理解的是,我不能直接将它作为 Int 传递,所以我尝试对其进行舍入。这给了我这个错误

由于使用“round”而产生的模棱两可的类型变量“p0”阻止了约束“(RealFrac (N p0))”的求解。可能的修复:使用类型注释来指定“p0”应该是什么。

提供类型注释似乎也不起作用,但我不完全确定它希望我注释哪些部分。

我的文件具有以下扩展名:

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NegativeLiterals #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{- # LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}

EDIT v2删除“NoMonomorphismRestriction”已经解决了这个问题。我什至不知道它有什么作用。

4

0 回答 0