我在閱讀Purescript通過示例並介紹了讀者單元的部分。示例如下: createUser :: Reader Permissions (Maybe User)
createUser = do
permissions <- ask
if hasPermission "admin" permissions
then map Just newUser
els
我正在實現一個函數來執行單次計算N次。我寫了下面的代碼。 performN :: Monad m => Int -> m t -> m [t]
performN 0 m = return []
performN n m =
do x1<- m
x2<- if n == 1 then return [] else (m:performN (n-2) m)
retur
我知道我可以使用函數單子來實現類似下面的一個結構(在這裏我重複使用多次調用的參數不明確引用它)之前執行轉換到輸入: compute_v0 :: String -> String
compute_v0 = do
x <- length -- (using the argument implicitly here)
top <- head -- (and here)
r
我遇到cats/monads /理解問題。 請考慮下面的代碼片段: import cats._
import cats.implicits._
final case class My[T]()
implicit val monadMy: Monad[My] = new Monad[My] { ... }
// this compiles
def test11[A, B](m: My[
剛剛被介紹給哈斯克爾的單子,並與>>碰到了一些障礙。 >>=對我來說很有意義,因爲我可以得到下面的出前奏曲: Prelude> Just 1 >>= (\ x -> Just (x+1))
Just 2
我的理解是,>>是一樣的綁定,但僅用於當函數是關於恆定的參數。但是,當我嘗試這樣做,在前奏: Prelude> Just 1 >> (\_ -> Just 10)
<interactiv