haskell - Haskell 错误:无法将类型“a1”与“Int”匹配
问题描述
在haskell中,我有这个功能,效果很好:
primesAtMost :: Integral a => a -> [a]
primesAtMost n = sieve [2..n]
where
sieve :: Integral a => [a] -> [a]
sieve [] = []
sieve (x:xs) = (x:sieve (filterMultiples x xs))
问题是,它的参数类型是 a,我不允许更改它。当我尝试使用类型为 Int 的参数调用此函数时,会出现错误:无法将类型 `a1' 与 `Int' 匹配 例如:
primesAtMost (length n)
解决方案
推荐阅读
- vb.net - VB.NET Timer.Start() 循环无值
- algorithm - 在给定 K 个最佳候选者的情况下查找时间戳
- excel - 查找范围内三个最小值的平均值 - 意外编译错误
- database - 当以下查询或条件不返回任何行时,我想在 oracle 中返回“1”作为默认值
- matrix - Fortran 矩阵除法
- java - Servlet 到 JSP 总是传递空值
- vue.js - Vue路由器-替换路由视图时在另一个顶部呈现
- android - 在 Android 中绘制 3D 数学函数
- java - 在 Struts 2.5.14 中,我无法添加新动作,我可以添加的唯一动作是每个 struts.xml 包中的 hello
- android-layout - ExoPlayer2 可缩放视图?