应该绑定结果Monad?

时间:2017-02-10 23:23:24

标签: haskell monads

以下是Haskell tutorial

的示例
instance Monad Maybe where  
    return x = Just x  
    Nothing >>= f = Nothing  
    Just x >>= f  = f x  
    fail _ = Nothing  

然而,我对Just x...行感到困惑。结果不应该是monad吗?我希望这行能够

Just x >>= f = Just (f x)

1 个答案:

答案 0 :(得分:9)

是的!您对结果是monad是正确的,但请记住m a -> (a -> m b) -> m b运算符的类型:f。然后,我们猜测a -> m b的类型为f,因此将x应用于<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/PrayerTitle" android:text="@string/PrayerTimesTitle" android:textColor="#000000" android:textAppearance="@style/TextAppearance.AppCompat.Display2" /> 会返回一个monad。