Tôi đang đọc chương Monads trong thế giới thực Haskell (chương 14). Một chức năng là defined như sau:Lý do cho MonadState có được và đặt?
type RandomState a = State StdGen a
getRandom :: Random a => RandomState a
getRandom =
get >>= \gen ->
let (val, gen')= random gen in
put gen' >>
return val
Tôi thực sự không hiểu mục đích của get và đặt chức năng ở đây. Tôi viết lại các chức năng như sau mà dường như làm điều tương tự và ngắn gọn hơn:
getRandom2 :: Random a => RandomState a
getRandom2= State $ \ s -> random s
Vì vậy, câu hỏi của tôi là: mục đích được và đặt nói chung là gì?
Chỉ trong trường hợp này, hoặc mục đích của 'get' và 'put' nói chung? Việc sử dụng chúng có thể được giải thích dễ dàng hơn trong trường hợp sau… – kennytm
Nói chung; Tôi sẽ chỉnh sửa câu hỏi của mình. – CiscoIPPhone