我想自己弄明白,但我想知道将带有yield语句的函数转换为枚举器状态机的算法是什么?例如,C#如何转变:
IEnumerator<string> strings(IEnumerable<string> args)
{ IEnumerator<string> enumerator2 = getAnotherEnumerator();
foreach(var arg in arg)
{ enumerator2.MoveNext();
yield return arg+enumerator.Current;
}
}
Run Code Online (Sandbox Code Playgroud)
进入这个:
bool MoveNext()
{ switch (this.state)
{
case 0:
this.state = -1;
this.enumerator2 = getAnotherEnumerator();
this.argsEnumerator = this.args.GetEnumerator();
this.state = 1;
while (this.argsEnumerator.MoveNext())
{
this.arg = this.argsEnumerator.Current;
this.enumerator2.MoveNext();
this.current = this.arg + this.enumerator2.Current;
this.state = 2;
return true;
state1:
this.state = 1;
}
this.state = -1;
if (this.argsEnumerator != null) this.argsEnumerator.Dispose();
break;
case 2:
goto state1;
}
return …
Run Code Online (Sandbox Code Playgroud) 我熟悉面向对象的体系结构,包括使用设计模式和类图进行可视化,我知道面向服务的体系结构及其契约和协议绑定,但是有一个关于系统的软件体系结构的特性.函数式编程语言?
我知道FP已被用于中型到大型项目.保罗格雷厄姆写了雅虎的第一个化身!存储在Common Lisp中.一些lisp开发系统很复杂.用函数式语言编写的人工智能和金融系统可以变得非常大.他们都至少拥有某种固有的架构,但我想知道他们是否有任何共同之处?
基于表达式评估的架构是什么样的?FP架构是否更具可组合性?
更新:凯尔提醒我,SICP是这个主题的一个很好的资源.
更新2:我发现了一个关于这个主题的好文章: 函数式编程如何影响代码的结构?
将解决方案拆分为逻辑层时,何时最好使用单独的项目而不仅仅是按文件夹分组?
我有一个C#项目和一个带有主项目单元测试的测试项目.我想要有可测试的internal
方法,我想测试它们没有你可以使用Visual Studio测试项目的神奇Accessor对象.我想使用,InternalsVisibleToAttribute
但每次我都这样做,我必须回去查看如何做,我记得包括创建用于签署程序集的密钥文件,然后使用sn.exe
获取公钥等等.
是否有一个实用程序可以自动创建SNK文件,设置项目以对程序集进行签名,提取公钥以及应用InternalsVisibleTo属性?
有没有办法使用没有签名程序集的属性?
是否有可用的免费工具来查看解决方案用户选项文件(解决方案文件附带的.suo文件)的内容?
我知道它基本上被格式化为文件中的文件系统,但我希望能够查看内容,以便我可以弄清楚我的解决方案和自定义的哪些方面导致它随着时间的推移而变得非常大.
我有一个连接字符串传递给一个函数,我需要基于这个字符串创建一个基于DbConnection的对象(即SQLConnection,OracleConnection,OLEDbConnection等).
是否有任何内置功能可以执行此操作,或任何第三方库可以提供帮助.我们不一定要构建这个连接字符串,所以我们不能依赖于写入字符串的格式来确定它的类型,我宁愿不必编写可能的连接字符串的所有组合和排列
什么参考文献提供了使用RDF/OWL的好的总结/教程?似乎有足够的工具(Protege,Topbraid,Jena等)知道标记语言的语法是不必要的,但当然,了解这些概念仍然是至关重要的.
我正在研究w3c文档(特别是RDF Primer),但我也想找到其他资源/技术.
我已经编写了一个代码,可以创建共享并更改当前用户的权限.目标是始终允许所有人在共享级别上并拒绝ntfs acl级别的权限.
我使用德语窗口,我注意到我只能使用"jeder"访问每个用户.在英语中,我认为用户是"每个人"还是"所有人"?!无论如何,我正在寻找一种方法来获得每个用户语言独立的名称.
希望这是可能的.
我正在开发一个小型TCP服务器,它将处理一些TCP数据包,并根据请求采取不同的行为.
我怎么能为此编写单元测试?如果真的很难写,那还值得努力吗?
c# ×4
.net ×3
acl ×1
ado.net ×1
algorithm ×1
architecture ×1
catamorphism ×1
dbconnection ×1
f# ×1
iterator ×1
owl ×1
rdf ×1
semantic-web ×1
suo ×1
tcp ×1
tdd ×1
unit-testing ×1