本文介绍了单价的情况的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有一种方法可以对存储在monad中的值执行大小写操作而不必将名称绑定到该值?

Is there a way to perform a case on the value stored within a monad without having to bind a name to it?

即而不是这样做:

c <- getChar
case c of
  ...

有没有办法做到这一点:

Is there a way to do this:

mcase getChar of
  ...

或者,如果可以部分应用case语句,那就很好了:

Alternatively, it would be nice if the case statement could be partially applied so:

case of
  ...

将被视为:

\a -> case a of
  ...

所以您可以这样做:

getChar >>= case of
              ...

推荐答案

答案是否定的.在Haskell 98中,不能在不使用名称的情况下使用case语句.但是,有一个提案用于添加对case-lambda的支持.他们提出的语法也与您提出的相同.

The answer is no. In Haskell 98, you can't use a case statement without using a name inside it. But there is a proposal for adding support for case-lambdas. The syntax they propose is the same you propose too.

这篇关于单价的情况的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 06:03