- 浏览: 3053136 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
下面的代码从Iterators in C#: Nothing Beats the Foreach Loop转来。
以前一直没想过generator可以这样用。能让generator自己递归这点相当让我着迷。
最近支持generator的语言也越来越多了。JavaScript也提供了支持。有意思啊……
程序的输出结果放在附件里了。
…不知道你是怎么读的,但这帖是讲C#的啊…
JS的话你要是看老赵写的Jscex或许也能做类似的事情。或者Mozilla的JavaScript 1.7的generator
using System.Collections.Generic; public enum Peg { A, B, C }; public struct Move { public Move( Peg from, Peg to ) { From = from; To = to; } public readonly Peg From; public readonly Peg To; } class TowerofHanoi { public static IEnumerable<Move> GenerateMoves( int n, Peg from, Peg to, Peg middle ) { if ( n == 1 ) yield return new Move( from, to ); else { foreach ( Move m in GenerateMoves( n - 1, from, middle, to ) ) yield return m; yield return new Move( from, to ); foreach ( Move m in GenerateMoves( n - 1, middle, to, from ) ) yield return m; } } } class Program { static void Main( string[ ] args ) { foreach ( Move m in TowerofHanoi.GenerateMoves( 10, Peg.A, Peg.B, Peg.C ) ) { System.Console.WriteLine( "From {0} to {1}", m.From, m.To ); } } }
以前一直没想过generator可以这样用。能让generator自己递归这点相当让我着迷。
最近支持generator的语言也越来越多了。JavaScript也提供了支持。有意思啊……
程序的输出结果放在附件里了。
- result.zip (290 Bytes)
- 描述: 程序的输出结果
- 下载次数: 3
评论
3 楼
lwwin
2011-11-16
本来是过来找yield的用法的,结果看到js也有generator这种有趣的用法就问问=w= 没见过嘛~话说才刚搞清楚,C#的yield和lua的和ruby的和弹幕风的并不都是一回事=0=
2 楼
RednaxelaFX
2011-11-16
lwwin 写道
还真不知道JS可以generator,是专门的语法么?
…不知道你是怎么读的,但这帖是讲C#的啊…
JS的话你要是看老赵写的Jscex或许也能做类似的事情。或者Mozilla的JavaScript 1.7的generator
1 楼
lwwin
2011-11-16
翻老帖了
还真不知道JS可以generator,是专门的语法么?
还真不知道JS可以generator,是专门的语法么?
发表评论
-
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22410(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对象的重量
2011-08-21 17:15 0http://domino.research.ibm.com/ ... -
GetCustomAttribute()每次都返回新Attribute实例
2009-11-10 10:30 0Jeffrey Zhao: 一次失败的尝试(上):原来GetC ... -
委托与方法和隐藏参数
2009-09-07 15:32 3312之前正好发了些帖子是关于CLR里的委托的,然后看到老赵说事件也 ... -
要让CLR挂掉的话(第二弹)……
2009-09-04 03:26 12880(Disclaimer:如果需要转 ... -
要让CLR挂掉的话……
2009-09-02 16:53 4786(Disclaimer:如果需要转载请先与我联系。 作者:Re ... -
趣味编程:函数式链表的快速排序
2009-08-31 08:53 3451(恢复自2009-08-28的备份 ... -
事件处理器导致内存泄漏
2009-08-25 15:03 0Memory leak via event handlers ... -
C# 3.0的类型推导
2009-08-23 12:24 0Howard Dierking: Lambda, Lambda ... -
把lock的意思给弄混了 T T
2009-08-20 17:49 2605悲剧啊……前几天有个同学不停问我Java里的同步问题,今天写C ... -
把IEnumerable<T>和IObservable<T>粘起来?
2009-07-23 03:02 0Channel 9: Expert to Expert: Br ... -
Scott Peterson: Variance, Thy Name is Ambiguity
2009-07-01 23:49 1639原文作者:Scott Peterson 原文地址:http:/ ... -
void无法协变
2009-06-30 11:17 0Eric Lippert The void is invari ... -
同一个表达式算出来的浮点数结果会不相等?
2009-05-30 03:27 0浮点数有很多可把玩的地方。例如下面这段C程序: #includ ... -
C#开始默认引用Microsoft.CSharp.dll
2009-05-20 16:14 0记得VB6的运行时么?留意到VB.NET的程序都需要额外的VB ... -
反射与显式实现接口的方法
2009-05-20 11:43 4063在前一帖里,我用到了下面三处Expression.Call() ... -
看到一个关于ref参数与多态的问题,记一下
2009-05-18 10:48 1945刚才读到Alan McGovern的一帖,问为什么形式参数是r ... -
C#的+=运算符两例
2009-05-06 18:18 2041刚偶尔看到了justjavac写的java解惑 - 半斤八两( ...
相关推荐
在.NET开发环境中,经常需要将接收到的JSON数据转换为C#对象,以便于操作和处理。`JsonCSharpClassGenerator`工具就是这样一个实用程序,它可以帮助开发者快速地从JSON字符串或文件生成对应的C#类模型。这个工具极...
"c# 条码打印测试解决图片打印模糊的问题"这一主题着重于如何在不依赖额外软件的情况下,优化图片和条码在打印过程中的清晰度。下面将详细介绍涉及的知识点以及解决方法。 1. **PrintDocument对象**:在C#中,`...
在使用MyBatis Generator生成Java DAO层代码时,可能会遇到将数据库中的tinyint类型映射成Integer类型的问题。这个问题在上述描述中得到了详细的解释。首先,我们来看一下问题的背景和原因。 在Java环境中,使用...
如果是eclipse工具,直接生成的,则替换:plugins/org.mybatis.generator.core_1.3.2*****.jar,如果是其他方式则直接替换掉官方的mybatis-generator-core1.3.2.jar即可
为了解决这一问题,提高开发效率,出现了一些自动生成实体类的工具。本篇文章将详细介绍如何使用`FreeSql.Generator`这一工具来从MySQL数据库自动生成C#实体类。 #### 一、安装FreeSql.Generator 在开始使用`...
【标题】:CodeGenerator——基于C#的代码生成器 【描述】:CodeGenerator是一款C#编写的实用工具,它的主要功能是从数据库中提取表结构信息,并根据这些信息自动生成对应的代码,极大地提高了开发效率,减少了手动...
为了更好地理解和使用Msc-generator,本文将详细介绍其主要功能和使用方法。 首先,我们需要了解如何开始使用Msc-generator。在开始使用之前,我们需要熟悉其界面布局,包括图表编辑区、工具带、缩放工具等。这些...
做个记号。自己收集使用。 你也可通过以下链接下载 https://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313/
5. 使用文档:"说明_Readme.html"文件提供了关于如何使用该工具的详细说明,包括安装步骤、操作指南以及可能遇到的问题和解决方法。阅读这份文档对初学者来说尤为重要,可以帮助快速上手。 总结而言,...
MyBatis Generator 使用手册 MyBatis Generator 是 MyBatis 的代码生成工具,旨在通过反射数据库表结构生成对应的Java代码,简化开发过程,提高开发效率。本手册将指导用户如何使用 MyBatis Generator 生成代码,...
OpenAPI Generator则是这个规范的实用工具,通过解析规范文件(通常是.yaml或.json格式),它可以生成多种编程语言的SDK(Software Development Kit),如Java、Python、C#、JavaScript等,这样开发者就可以直接在...
VS2013下配置Parser Generator1 Parser Generator是一款功能强大的解析器生成工具,能够帮助开发者快速生成解析器代码。...配置完成后,开发者可以使用Parser Generator生成解析器代码,提高开发效率。
改变了注解提供Generator使用新的SQL生成器类从MyBatis的3.2。如果你必须在一个旧版本的MyBatis运行,设置在配置属性“useLegacyBuilder”为“true”。 问题#11日 - Maven插件现在记录到日志行家(感谢保罗克劳斯)...
由于C#原生并不支持FFmpeg的API,`ffmpeg.autogen`的使用变得尤为重要,它通过SWIG(Software Interface Generator)或者其他自动绑定工具,将FFmpeg的C接口转换为C#友好的类和方法。 在C#中,使用FFmpeg处理视频...
Swig(Simplified Wrapper and Interface Generator)是一种工具,它能够自动将C++库转换为其他编程语言,如C#,从而让这些语言可以调用C++的函数和类。在这个"使用Swig转换C++库到C#示例代码"的压缩包中,我们有三...
Mybatis Generator是一款强大的工具,它为开发者自动化生成Mybatis的Mapper接口、XML映射文件以及实体类,大大减轻了在使用Mybatis时手动编写这些文件的工作负担。在Java开发环境中,ORM(Object-Relational Mapping)...
RazorEngine.NET允许开发者使用C#语法来编写模板,这些模板可以动态生成文本,如HTML、XML或C#代码。在代码生成器中,用户可以创建自定义模板,定义如何根据数据库模型生成C#类、接口、服务或仓储代码。这极大地提高...