1
Haskell printf如何工作?
Haskell的类型安全是第二首屈一指只依赖类型语言。但是Text.Printf有一些深层的魔力,似乎很打字。 > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 这背后的深层魔力是什么?Text.Printf.printf函数如何接受像这样的可变参数? Haskell中允许可变参数使用的一般技术是什么,它是如何工作的? (附带说明:使用此技术时,某些类型的安全性显然丢失了。) > :t printf "%d\n" "foo" printf "%d\n" "foo" :: (PrintfType ([Char] -> t)) => t