2012-07-28 130 views
0

如何查看客户?haskell monad案例

case e of 
    Just e -> let client = (e, sink) 
    Nothing -> let client = false 

case msg of 
    _ | not client -> do nothing 
     | msg -> do something 
     | otherwise -> do print "i was born in..." 

可能没有接近,但希望它清楚我想做什么。

+1

它叫做monad,不是游牧民族。 – Femaref 2012-07-28 17:58:05

+0

doh! :)我有一种感觉,这将是一个复杂的答案 – 2012-07-28 18:03:43

回答

3

我认为你正在寻找的东西是这样的:

m e sink = do 
    case e of 
     Nothing -> print "No Client" 
     (Just c) -> do 
      -- Client is in c 

如果不是,我们真的需要什么你正在尝试做更多的代码和说明。

否则,我要告诉你,好像你在Haskell做必要的东西。你应该回去阅读一些教程,如Learn You A HaskellReal World Haskell。尤其是后者包含大量关于实际Haskell程序的Haskell应用程序示例。

+1

当务之急大部分时间可以帮助我解释我正在努力实现:) – 2012-07-28 18:05:54

+0

Haskell在这方面完全不同于C或Java。你不能像你那样分配值。 Haskell中的任何东西都必须是函数的结果。我不知道你是否理解那里的概念。 – Lanbo 2012-07-28 18:10:51

+0

so m会返回c或打印一些正确的东西?但是,你如何检查后卫(第二种情况)m是否成功?如果不清楚,我会用一个真实世界的例子来解释。 – 2012-07-28 18:13:23