声明:我是haskell的总newb,但找不到答案。也许我以错误的方式寻找,或者如此基本,甚至没有人问这个问题。Printf文本和方法调用的返回值
这是我尝试做:
import Text.Printf
factorial n = if n < 2 then 1 else n * factorial (n-1)
main = do
let input = 22
printf "Some text... %d! = %d" input (factorial input)
但是,这并不工作,一堆错误出现。你能给我一个简短的提示,我做错了什么?
你做的不错,但是编译器不能推断'input'的类型,这就是为什么你有很多错误,如'不实例...' – freestyle
“一堆错误出现” - 请注意避免发布,而不报告实际的错误。此外,'printf'在Haskell中并不经常使用 - 只有在需要特殊格式时才使用它。否则,只需使用像'putStrLn(“x =”++ show x ++“,y =”++ show y)“这样简单的东西''''' – chi