【发布时间】:2011-06-18 15:15:16
【问题描述】:
例如,拿 Don Stewart 写的代码来回答一些 Stack Overflow 问题:
import Control.Monad
import qualified Data.HashTable as H
import System.Environment
main = do
[size] <- fmap (fmap read) getArgs
m <- H.new (==) H.hashInt
forM_ [1..size] $ \n -> H.insert m n n
v <- H.lookup m 100
print v
在 GHCi 中加载它。
:t getArgs ---> getArgs :: IO [String]
:t main ---> main :: IO ()
为什么 main 的类型签名没有反映 getArgs :: IO [String] 被调用的事实?
当你运行二进制文件时,你可以给出一个参数。
<prog> 145 返回Just 100
但在 GHCi 中,您不能:main 145 给出错误。你如何在 GHCi 中运行这个程序并给出一个论点。
【问题讨论】:
标签: haskell type-inference ghci