首页 > 解决方案 > 哈斯克尔世界你好

问题描述

这段代码来自一个在线教程,它并没有真正解释这个打印“Hello,World”的haskell代码背后的逻辑。你能解释一下这里到底发生了什么吗?我对最后一行发生的事情以及它如何使 greet = Hello 感到特别困惑。为什么需要“谁”?它有什么意义?为什么greet不只是设置为“你好”。我应该从这段代码片段中学到什么?请原谅我,因为我刚刚进入函数式编程的世界,我认为一些明显的事情从我头上飞过。

main :: IO () 

main = putStrLn (greet "World") 

greet who = "Hello, " ++ who

标签: haskell

解决方案


在问题的字里行间阅读听起来像是在阅读

(greet "World")

将字符串greet"World". 然而,在 Haskell 中,这就是你编写函数调用及其参数的方式。像 C 或 Java 这样的语言会这样写

greet ("World")

在 Haskell 中,括号不用于函数参数;相反,它们仅用于操作员优先级。“函数应用程序”(意味着在某些参数上调用函数)就像一个具有最高优先级的不可见运算符。


推荐阅读