小编Sam*_*inn的帖子

Haskell - "应用程序中的类型错误":"统一会给出无限类型"

我正在开始使用Haskell,但是我试图制作的这种平等检查并没有成功.

我有一个函数,countLetter a [b] c其中a是char,b是一个字符列表,c是一个int.(类型声明通过罚款.)但是我遇到了这个表达式的问题:

if a == head(b)
Run Code Online (Sandbox Code Playgroud)

给我以下消息:

Type error in application

*** Expression     : a == head b
*** Term           : a
*** Type           : [a]
*** Does not match : a
*** Because        : unification would give infinite type
Run Code Online (Sandbox Code Playgroud)

如果需要,我的代码是完整的:

countLetter :: char -> [char] -> int

countLetter a [b] c = if null b

                       then []
                       else
                       if a == head(b)
                       then countLetter a tail(b) c+1
                    else …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell错误:"(n + k)模式中的第一个参数必须是变量" - 但是如何?

我正在尝试创建一个无限的毕达哥拉斯值列表,但我遇到了一个问题.

pytrips = [(x, y, z) | z <- [1..], y <- [1..z], x <- [1..y],
           (x^2 + y^2) <- z^2, gcd x y == 1]
Run Code Online (Sandbox Code Playgroud)

我的错误如此:

"First argument in (n+k) pattern must be a variable"

我不太明白我为此做了什么语法问题,因为该方法不需要传递任何参数.任何人都可以帮我解决这个问题吗?

haskell

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

PHP代码输出不正确

我正在使用PHP和HTML,但每当我编写一些PHP代码时,我都会遇到问题.一个例子如下:

<?php
echo "<h2>Hello?</h2>";
$var = 5;
echo "You have $var minutes to go.";
?>
Run Code Online (Sandbox Code Playgroud)

最终在屏幕上输出的是:

Hello?"; $var = 5; echo "You have $var minutes to go."; ?>
Run Code Online (Sandbox Code Playgroud)

但我想要发生的是:你好?你有5分钟的路程.

有什么我忘了做的吗?我是否添加HTML前导码,或者我是否添加了类似的标签似乎并不重要

围绕第二个回波线.有人有建议吗?

编辑:显然我无法正确解析PHP.这台电脑是新的,我安装了XAMPP,但没有别的.我错过了使用PHP所需的东西吗?

html php

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

Haskell - 定义文件名所需的分数Int实例?

我是Haskell的业余爱好者,试图通过"x"的平方根的无限近似列表,其中"acc"代表这一步的生成.但是,当我运行下面的代码时,我得到了潜在的错误.

as' x acc = ( last(take (acc-1) (as' x (acc-1)))
+ (acc / last(take (acc-1) (as' x (acc-1)))) ) / 2 : as' x (acc+1)
Run Code Online (Sandbox Code Playgroud)

ERROR "a5.hs":34 - Instance of Fractional Int required for definition of as'

此外,当我尝试应用此类型代码时,我收到一个错误:

as' :: Float -> Float -> Float
Run Code Online (Sandbox Code Playgroud)

Type error in application
*** Expression : (last (take (acc - 1) (as' x (acc - 1))) + acc / last (take (acc - 1) (as' x (acc - 1)))) / 2 : as' …

haskell

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

标签 统计

haskell ×3

html ×1

php ×1