digitToInt, intToDigit, toUpper, toLower, ord, chr,等 ord将字母转换为数字, chr反之. 七. 连续函数 Haskell中整数可以用Int和Integer表示, 实数可以用Float(单精度)和Double(双精度)来表示. 有理数还可用Rational表示, 相当于无限精度的浮点数. Prelude中定义了两个在数学
常见基本类型: Int:一般是32bit整数 Integer:无限大整数 Float:单浮点 Double:双浮点 Bool:布尔型 Char:字符型 常见类型类: Eq:可判断性类型 例如Int等 Ord:可判断大小型 Show:可用字符串表示的类型 Read:将一个字符串转为Read的类型 单用需类型注释 如read “5” :: Int Num:表示数字的类型类 Integral:...
包括(),Bool,Char,Ordering,Int,Integer,Float和Double,这些类型都可以用于Range,可以通过succ和pred函数访问该类型值的后继和前驱 Bounded:有明确的上下界。可以通过maxBound和minBound取指定类型的上下界(如maxBound :: Int) Num:数值。成员都具有数值的特征 Integral:整数。包括Int和Integer Floating:小数。包括Fl...
digitToInt, intToDigit, toUpper, toLower, ord, chr,等 ord将字母转换为数字, chr反之. 七. 连续函数 Haskell中整数可以用Int和Integer表示, 实数可以用Float(单精度)和Double(双精度)来表示. 有理数还可用Rational表示, 相当于无限精度的浮点数. Prelude中定义了两个在数学上较基本的函数: 1. 常数函数 c...
Int 整数,通常是32位,所以取值范围是 -2147483648 ~ 2147483647 Bool 布尔值,例如 True和False 注释3 Integer 整数,没有取值范围,其范围只取决于内存大小 Float 浮点数 Double 双精度浮点数 !!! 加上叙述,如果你看到了一个函数的定义是[a] 就代表list of something 像[Char] 就代表了list of Char 意思就...
x = (1 :: Integer) + (1 :: Integer) :: Integer 空数组类似与C中: int f44() { return 44; } 使用Haskell表达: f44 :: () -> Integer f44 () = 44 第一行声明了f44的参数类型是一个unit,第二行通过模式匹配f44的唯一构造函数,也就是(),产生44的结果;以后你就可以通过()调用这个函数。如...
Int和Integer区别是Int的取值范围是有限的, Integer的大小是无限的. 因为Integer比Int更普遍,所以在没有明显说明b的类型为Int时, 就自动推断b的类型为: Integer 再举几个例子,在Haskell标准库Prelude中定义的常数中,有两个是: pi = 4 * atan 1 otherwise = True ...
Integer 不限长度的带符号整数。 Integer 并不像 Int 那么常用,因为它们需要更多的内存和更大的计算量。另一方面,对 Integer 的计算不会造成溢出,因此使用 Integer 的计算结果更可靠。 Double 用于表示浮点数。长度由机器决定,通常是 64 位。(Haskell 也有 Float 类型,但是并不推荐使用,因为编译器都是针对 Double...
replicate :: Int -> a -> [a] replicate 0 x = [] replicate n x = x : (replicate (n - 1) x) (!!) :: [a] -> Int -> a (!!) xs 0 = head xs (!!) (x : xs) n = (!!) xs (n - 1) elem :: Eq a => a -> [a] -> Bool ...
写成Haskell,就是如下的代码了(为了照顾初学者,这里统一使用Int而非Integer): 傻乎乎的方法 PS:B站支持代码块啦,可惜没有Haskell,只能上图片凑合一下了。 这里需要解释一下几个函数的用法: inits导入自Data.List,用法看个例子就懂了: inits是干啥的