首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有变量赋值的linq中的绑定表达式

没有变量赋值的linq中的绑定表达式
EN

Stack Overflow用户
提问于 2013-10-29 03:14:14
回答 1查看 184关注 0票数 1

我在C#中编写了一些惰性IO类型的monad,并尝试使用linq语法来提高代码的可读性。

有没有一种方法,我可以做一个绑定,而不是变量赋值的操作,只是要求他们的副作用?

本例中的Print(...)总是返回Void.Void

代码语言:javascript
复制
static IO<Void> Foo()
{
    var foo = from i in Return(2)
              from _1 in Print("Enter a number")
              from input in ReadInt()
              from _2 in Print("You entered: " + input)
              from j in Increment(input).Bind(Square)
              from sum in Add(j, input)
              from _3 in Print("i = " + i)
              from _4 in Print("j = " + j)
              from condition in GreaterThan(j, 10)
              from _5 in If(condition,
                  Print("j is greater than 10"),
                  Print("j is not greater than 10"))
              from _6 in Print("sum = " + sum)
              select Void.Void;
    return foo;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 03:21:22

不那是不可能的。你需要选择一些东西。

从根本上说,查询语法是为编写查询而设计的,而不是一般的monads,因此在这种上下文中使用时,这种语法并不是特别有效或优雅的。

对monad使用查询语法是一项有点有趣的智力练习,但它并不是很实用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19649001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档