小编Tho*_*mas的帖子

Haskell和Quadratics

我必须编写一个程序来解决quadratics,返回一个复数的结果.

到目前为止,我已经定义了一个复数,声明它是num的一部分,所以+, - 和* - ing可以发生.

我还为二次方程定义了一种数据类型,但我现在仍然坚持二次方程式的实际求解.我的数学很差,所以任何帮助都会非常感激......

data Complex = C {
re :: Float,
im :: Float
} deriving Eq

-- Display complex numbers in the normal way

instance Show Complex where
    show (C r i)
        | i == 0            = show r
        | r == 0            = show i++"i"
        | r < 0 && i < 0    = show r ++ " - "++ show (C 0 (i*(-1)))
        | r < 0 && i > 0    = show …
Run Code Online (Sandbox Code Playgroud)

math haskell functional-programming quadratic complex-numbers

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

Haskell浮点错误

所以我已经在haskell中创建了自己的复数数据类型.

由于这里的另一个问题,我也得到了一个能解决二次方程的函数.

现在唯一的问题是,在尝试解决具有复杂根的二次方时,代码会在拥抱中生成解析错误.

即拥抱......

Main> solve (Q 1 2 1)
(-1.0,-1.0)

Main> solve (Q 1 2 0)
(0.0,-2.0)

Main> solve (Q 1 2 2)
(
Program error: pattern match failure: v1618_v1655 (C -1.#IND -1.#IND)
Run Code Online (Sandbox Code Playgroud)

在应用平方根之后,它看起来像我的问题,但我真的不确定.任何试图找出问题的帮助或任何关于这个错误意味着什么的指示都将是辉煌的.

谢谢,

托马斯

代码:

-- A complex number z = (re +im.i) is represented as a pair of Floats

data Complex = C {
re :: Float,
im :: Float
} deriving Eq

-- Display complex numbers in the normal way

instance Show Complex where
    show …
Run Code Online (Sandbox Code Playgroud)

math haskell pattern-matching complex-numbers

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