代码语言:haskell 复制 intList::[Int]intList=[1,2,3,4,5]stringList::[String]stringList=mapshowintList 在这个示例中,我们首先定义了一个Int列表intList,然后使用map函数将其转换为字符串列表stringList。map函数接受一个函数和一个列表作为参数,将列表中的每个元素都应用到该函数中,并返回一个新的列表。...
Int 代表整数,7可以是Int,但是7.2不行,Int是有界的,这意味着有最小值和最大值。 Integer也代表整数,主要区别在于它没有界限,可以用来表示非常大的数字,但是Int效率更高。 Float是真正的单精度浮点数。 Double是真正的浮点数,具有双倍精度。 Bool是布尔类型,只能有两个值:True和False。 Char代表一个字符,用单引...
有时需要将一个整数转为复数类型或者比值类型,这时就可以使用它。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 Prelude> :m Data.Ratio Prelude Data.Ratio> fromInteger 5 :: Ratio Int 5 % 1 还有熟悉的向下取整方法: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 Prelude> :t floor floor...
makeRequest :: String -> IO String makeRequest url = do response <- fetchFromNetwork url -- 处理响应数据 return processedData where fetchFromNetwork :: String -> IO String fetchFromNetwork = -- 实际的网络请求实现 processedData :: String processedData = -- 对响应数据的处理 这个例子中,通过...
我们可以看到getLine是一个回传String的 I/O action。因为它会等使用者输入某些字串,这很合理。那name <- getLine又是如何?你能这样解读它:执行一个 I/O actiongetLine并将它的结果绑定到name这个名字。getLine的型态是IO String,所以name的型态会是String。你能把 I/O action 想成是一个长了脚的盒子,它会...
“穿越”进去的组合函数首先起作用的是read函数,它将String转换为Int,然后这个Int值被喂给组合中的下一个函数takeOff,takeOff接受一个Int值后生成我们的解,一个动作序列[Action],由于<$>穿越之后不改变getLine的结构外壳IO,于是takeOff.read <$> getLine的结果就是IO [Action]。最后我们使用>>=算符打开IO的外壳,...
dataPerson=Person{firstname::String,lastname::String,age::Int, }deriving(Eq) 一个类派生为Eq的实例后,就可以使用==盒/=来判断相等性了。这里面会先现检查两个值的值构造器是否一致,在检查每一对字段数据是否相等(当然也得属于Eq类型类)。 Show类型类要求参数必须都属于Read和Show;Read是指可以从字符串转...
和Int不同的就是Integer是任意大小整数 浮点型(Float) 32位浮点数 双精浮点型(Double) 64位浮点数 至于上面的数字为什么后面加::是因为类型类,涉及到类型推导,感兴趣的可以自行了解 复合类: 复合类由基本类组成,常见的有: 字符串(String)/ 数组 由一个Char的数组组成。[]表示数组。
proxyPort :: String proxyPort = "5445" proxyUser :: String proxyUser = "16QMSOML" proxyPass :: String proxyPass = "280651" -- 创建带有认证信息的代理 createAuthProxy :: String -> Int -> String -> String -> C.Proxy createAuthProxy host port user pass = ...