博客园 - 鹤冲天
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=4038
2015-12-31T09:16:19Z
鹤冲天
https://www.cnblogs.com/ldp615/
feed.cnblogs.com
https://www.cnblogs.com/ldp615/p/quickly-create-instance-of-iequalitycomparer-improvement.html
快速创建 IEqualityComparer 实例:改进 - 鹤冲天
两年前,我写了篇文章《快速创建 IEqualityComparer 和 IComparer 的实例》,文中给出了一个用于快速创建 IEqualityComparer 实例的类 Equality。
在后来的使用中发现了一些不足,在此进行一些改进,以便更好的使用。
2013-12-31T15:59:00Z
2013-12-31T15:59:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】两年前,我写了篇文章《快速创建 IEqualityComparer 和 IComparer 的实例》,文中给出了一个用于快速创建 IEqualityComparer 实例的类 Equality。
在后来的使用中发现了一些不足,在此进行一些改进,以便更好的使用。 <a href="https://www.cnblogs.com/ldp615/p/quickly-create-instance-of-iequalitycomparer-improvement.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2013/04/11/recursive-lambda-expressions-5.html
使用 Lambda 表达式编写递归五:推导装配脑袋的 Fix - 鹤冲天
<img src="http://www.cnblogs.com/images/cnblogs_com/ldp615/469308/t_Print%20Gallery.jpg" class="desc_img"/>
装配脑袋 给出的 Fix 函数精简到极致: Func<T, TResult> Fix<T, TResult>(Func<Func<T,TResult>, Func<T,TResult>> f) {
     return t => f(Fix(f))(t);
}
本文通过 λ 演算导出。
2013-04-11T02:31:00Z
2013-04-11T02:31:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】<img src="http://www.cnblogs.com/images/cnblogs_com/ldp615/469308/t_Print%20Gallery.jpg" class="desc_img"/>
装配脑袋 给出的 Fix 函数精简到极致: Func<T, TResult> Fix<T, TResult>(Func<Func<T,TResult>, Func<T,TResult>> f) {
     return t => f(Fix(f))(t);
}
本文通过 λ 演算导出。 <a href="https://www.cnblogs.com/ldp615/archive/2013/04/11/recursive-lambda-expressions-5.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2013/04/10/recursive-lambda-expressions-4.html
使用 Lambda 表达式编写递归四:实现 Θ 组合子 - 鹤冲天
<img src="http://www.cnblogs.com/images/cnblogs_com/ldp615/469308/t_Fish%20and%20Scales%20-%20small.png" width="147px" class="desc_img"/>
上一篇文章已经实现了 Y 组合子。
本文将实现另一个不动点组合子: Θ 组合子。
Θ 组合子也是一个常见不动点组合子,由 阿兰·图灵 发现,也称为图灵不动点组合子:
Θ = (λx.λy.(y(x x y))) (λx.λy.(y(x x y)))
2013-04-10T12:33:00Z
2013-04-10T12:33:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】<img src="http://www.cnblogs.com/images/cnblogs_com/ldp615/469308/t_Fish%20and%20Scales%20-%20small.png" width="147px" class="desc_img"/>
上一篇文章已经实现了 Y 组合子。
本文将实现另一个不动点组合子: Θ 组合子。
Θ 组合子也是一个常见不动点组合子,由 阿兰·图灵 发现,也称为图灵不动点组合子:
Θ = (λx.λy.(y(x x y))) (λx.λy.(y(x x y))) <a href="https://www.cnblogs.com/ldp615/archive/2013/04/10/recursive-lambda-expressions-4.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2013/04/10/recursive-lambda-expressions-3.html
使用 Lambda 表达式编写递归三:实现 Y 组合子 - 鹤冲天
<img src="http://images.cnblogs.com/cnblogs_com/ldp615/469111/o_lambda.png" class="desc_img"/>
也许你我都难以理解,为什么有人对她痴迷疯狂,铭记在心中不说,还要刻在身上。
她让人绞尽脑汁,也琢磨不定!她让人心力憔悴,又百般回味!
她,看似平淡,却深藏玄机!她,貌不惊人,却天下无敌!
她是谁?她就是...
2013-04-10T09:31:00Z
2013-04-10T09:31:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】<img src="http://images.cnblogs.com/cnblogs_com/ldp615/469111/o_lambda.png" class="desc_img"/>
也许你我都难以理解,为什么有人对她痴迷疯狂,铭记在心中不说,还要刻在身上。
她让人绞尽脑汁,也琢磨不定!她让人心力憔悴,又百般回味!
她,看似平淡,却深藏玄机!她,貌不惊人,却天下无敌!
她是谁?她就是... <a href="https://www.cnblogs.com/ldp615/archive/2013/04/10/recursive-lambda-expressions-3.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2013/04/09/recursive-lambda-expressions-2.html
使用 Lambda 表达式编写递归二:推断 FIX、g 的类型 - 鹤冲天
<img src="http://images.cnblogs.com/cnblogs_com/ldp615/469308/t_Stars.gif" class="desc_img"/>
上一章节介绍的 λ 演算是无类型的,对于 FIX、g 我们只知道:
它们都是有独个参数的函数,它们的参数本身也是一个只有单一参数的函数...
基于这种描述,是无法将 FIX、g 转化为 c# 代码的,我们需要推断出 FIX、g 类型。
2013-04-09T12:41:00Z
2013-04-09T12:41:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】<img src="http://images.cnblogs.com/cnblogs_com/ldp615/469308/t_Stars.gif" class="desc_img"/>
上一章节介绍的 λ 演算是无类型的,对于 FIX、g 我们只知道:
它们都是有独个参数的函数,它们的参数本身也是一个只有单一参数的函数...
基于这种描述,是无法将 FIX、g 转化为 c# 代码的,我们需要推断出 FIX、g 类型。 <a href="https://www.cnblogs.com/ldp615/archive/2013/04/09/recursive-lambda-expressions-2.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2013/04/09/recursive-lambda-expressions-1.html
使用 Lambda 表达式编写递归一:前言及基础 - 鹤冲天
<img src="http://images.cnblogs.com/cnblogs_com/ldp615/469308/t_Drawing%20Hands.gif" class="desc_img"/>
这是一个比较古老的话题,三年半之前,老赵就此写过一篇很文章《使用Lambda表达式编写递归函数》。其中提出了伪递归的概念,提出了自己的解决方式,也引出了装配脑袋 使用不动点组合子 的解决办法。
最近比较轻闲,静下心来学习了下λ演算、不动点组合子的一些理论,并深入思考,略有所悟,在此和大家分享下。
本文及后续章节会用到相当复杂的泛型及 lambda 表达式,请做好相关技术和心理准备。
2013-04-09T08:31:00Z
2013-04-09T08:31:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】<img src="http://images.cnblogs.com/cnblogs_com/ldp615/469308/t_Drawing%20Hands.gif" class="desc_img"/>
这是一个比较古老的话题,三年半之前,老赵就此写过一篇很文章《使用Lambda表达式编写递归函数》。其中提出了伪递归的概念,提出了自己的解决方式,也引出了装配脑袋 使用不动点组合子 的解决办法。
最近比较轻闲,静下心来学习了下λ演算、不动点组合子的一些理论,并深入思考,略有所悟,在此和大家分享下。
本文及后续章节会用到相当复杂的泛型及 lambda 表达式,请做好相关技术和心理准备。 <a href="https://www.cnblogs.com/ldp615/archive/2013/04/09/recursive-lambda-expressions-1.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2013/03/31/2991304.html
替代反射调用的几种方式及性能测试 - 鹤冲天
园子里和这个话题的相关文章比较多,本文是旧话重提,外加个小的总结。主要因为近期看到很多同事、朋友都已经使用 VS2012 进行 .NET 4.5 开发了,却还在大量使用反射,不知道用新的方式。或有所了解,但又害怕性能不好不敢大胆去用。
2013-03-31T09:25:00Z
2013-03-31T09:25:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】园子里和这个话题的相关文章比较多,本文是旧话重提,外加个小的总结。主要因为近期看到很多同事、朋友都已经使用 VS2012 进行 .NET 4.5 开发了,却还在大量使用反射,不知道用新的方式。或有所了解,但又害怕性能不好不敢大胆去用。 <a href="https://www.cnblogs.com/ldp615/archive/2013/03/31/2991304.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2012/07/27/http-get-post.html
也谈 GET 和 POST 的区别 - 鹤冲天
上个月,博客园精华区有篇文章《GET 和 POST 有什么区别?及为什么网上的多数答案都是错的》,文中和回复多是对长度限制和 Url 隐藏数据两个问题进行了深究。在我看来这两者都不是重点,特写此文予以讨论。
2012-07-27T12:06:00Z
2012-07-27T12:06:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】上个月,博客园精华区有篇文章《GET 和 POST 有什么区别?及为什么网上的多数答案都是错的》,文中和回复多是对长度限制和 Url 隐藏数据两个问题进行了深究。在我看来这两者都不是重点,特写此文予以讨论。 <a href="https://www.cnblogs.com/ldp615/archive/2012/07/27/http-get-post.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2012/01/15/orderby-extensions.html
c# 扩展方法 奇思妙用 高级篇 九:OrderBy(string propertyName, bool desc) - 鹤冲天
如题,本文实现 OrderBy(string propertyName, bool desc) 扩展方法,以弥补 Linq 原生排序方法的不足
2012-01-15T10:41:00Z
2012-01-15T10:41:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】如题,本文实现 OrderBy(string propertyName, bool desc) 扩展方法,以弥补 Linq 原生排序方法的不足 <a href="https://www.cnblogs.com/ldp615/archive/2012/01/15/orderby-extensions.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/12/11/2284154.html
Linq:切勿使用 Count() > 0 来判断集合非空 - 鹤冲天
如题,使用 Linq 时切勿使用 Count() > 0 来判断集合非空,这样做可能会带来严重的性能问题
2011-12-11T12:51:00Z
2011-12-11T12:51:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】如题,使用 Linq 时切勿使用 Count() > 0 来判断集合非空,这样做可能会带来严重的性能问题 <a href="https://www.cnblogs.com/ldp615/archive/2011/12/11/2284154.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/12/10/is-empty-and-is-not-empty-extension-methods.html
c# 扩展方法奇思妙用基础篇十:IsEmpty、IsNotEmpty 扩展 - 鹤冲天
IsEmpty、IsNotEmpty 扩展方法,用来确定序列是否包含元素。
2011-12-10T14:45:00Z
2011-12-10T14:45:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】IsEmpty、IsNotEmpty 扩展方法,用来确定序列是否包含元素。 <a href="https://www.cnblogs.com/ldp615/archive/2011/12/10/is-empty-and-is-not-empty-extension-methods.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/12/09/simple-create-a-complex-tree.html
四行代码创建复杂(无限级)树 - 鹤冲天
最近两三天一直在做树方面的基础工作,碰巧今天在博客园看到一篇关于动态创建树文章,粗略浏览下,感觉有不够强大。相比而言,感觉自己的方式更好些,只需要四行代码就可以创建一颗复杂的无限级树
2011-12-09T12:38:00Z
2011-12-09T12:38:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】最近两三天一直在做树方面的基础工作,碰巧今天在博客园看到一篇关于动态创建树文章,粗略浏览下,感觉有不够强大。相比而言,感觉自己的方式更好些,只需要四行代码就可以创建一颗复杂的无限级树 <a href="https://www.cnblogs.com/ldp615/archive/2011/12/09/simple-create-a-complex-tree.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/12/05/asp-net-mvc-elegant-route.html
ASP.NET MVC:自定义 Route 让你的 Url 更优雅 - 鹤冲天
如今,互联网越来越注重简单优雅的 Url, 相信大多朋友都喜欢小写、使用负号作为连字符的 url。本文使用自定义 Route 来实现,只需增加几个类和简单修改下 global.asax 文件。
2011-12-05T12:11:00Z
2011-12-05T12:11:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】如今,互联网越来越注重简单优雅的 Url, 相信大多朋友都喜欢小写、使用负号作为连字符的 url。本文使用自定义 Route 来实现,只需增加几个类和简单修改下 global.asax 文件。 <a href="https://www.cnblogs.com/ldp615/archive/2011/12/05/asp-net-mvc-elegant-route.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/10/07/can-you-find-the-error-in-foreach-extension-method.html
你能指出这个 ForEach 扩展方法中的错误吗? - 鹤冲天
Linq 中没有原生的 ForEach 扩展方法,我们可以很轻松的扩展一个......但这个有返回值的实现中有错误的,你能指出吗?
2011-10-07T08:06:00Z
2011-10-07T08:06:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】Linq 中没有原生的 ForEach 扩展方法,我们可以很轻松的扩展一个......但这个有返回值的实现中有错误的,你能指出吗? <a href="https://www.cnblogs.com/ldp615/archive/2011/10/07/can-you-find-the-error-in-foreach-extension-method.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/09/21/reuse-entity-framework-english-pluralization-service.html
复用 Entity Framework 中英语单复数形式变换的类 - 鹤冲天
数据库表名用复数、实体类名用单数,集合属性用单数…编程中经常会遇到英语单复变换的问题,你能准确处理吗?对我来说,十年前或许可以,but don't worry,我们有现成的类提供些类服务,来自 EntityFrameWork。
2011-09-21T13:24:00Z
2011-09-21T13:24:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】数据库表名用复数、实体类名用单数,集合属性用单数…编程中经常会遇到英语单复变换的问题,你能准确处理吗?对我来说,十年前或许可以,but don't worry,我们有现成的类提供些类服务,来自 EntityFrameWork。 <a href="https://www.cnblogs.com/ldp615/archive/2011/09/21/reuse-entity-framework-english-pluralization-service.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/09/18/asp-net-mvc-expression-trees-as-action-parameter-part2.html
ASP.NET MVC:Expression Trees 作为参数简化查询 二 - 鹤冲天
Expression Trees 可用作 Action 的参数来简化查询,前文中给出的 QueryConditionExpressionModelBinder 类,比较僵化,无法满足实际要求。本文将会从这个类为起点,基于 Convention 构建一个灵活的解决方案。
2011-09-18T09:25:00Z
2011-09-18T09:25:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】Expression Trees 可用作 Action 的参数来简化查询,前文中给出的 QueryConditionExpressionModelBinder 类,比较僵化,无法满足实际要求。本文将会从这个类为起点,基于 Convention 构建一个灵活的解决方案。 <a href="https://www.cnblogs.com/ldp615/archive/2011/09/18/asp-net-mvc-expression-trees-as-action-parameter-part2.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/09/16/asp-net-mvc-expression-trees-as-action-parameter.html
ASP.NET MVC:Expression Trees 作为参数简化查询 - 鹤冲天
MVC 引入了 ModelBinder,让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据。在查询 Action 中,我们可以将 Expression Trees 用作参数,通过自定义的 ModelBinder 动态自动构建查询表达式树,进一步发挥 MVC 的威力,简化编码工作。
2011-09-16T15:09:00Z
2011-09-16T15:09:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】MVC 引入了 ModelBinder,让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据。在查询 Action 中,我们可以将 Expression Trees 用作参数,通过自定义的 ModelBinder 动态自动构建查询表达式树,进一步发挥 MVC 的威力,简化编码工作。 <a href="https://www.cnblogs.com/ldp615/archive/2011/09/16/asp-net-mvc-expression-trees-as-action-parameter.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/09/15/expression-extension-methods.html
c# 扩展方法奇思妙用基础篇九:Expression 扩展 - 鹤冲天
使用 Expression 类创建 Expression Trees 的代码往往比较繁琐,可以借助扩展方法予以简化。
2011-09-15T09:18:00Z
2011-09-15T09:18:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】使用 Expression 类创建 Expression Trees 的代码往往比较繁琐,可以借助扩展方法予以简化。 <a href="https://www.cnblogs.com/ldp615/archive/2011/09/15/expression-extension-methods.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/08/16/asp-net-mvc-3-give-up-unity.html
ASP.NET MVC 3:放弃 Unity - 鹤冲天
Unity 很多时候也不尽人意...Unity 形为诡异,不按常理出牌,终于逼我产生了放弃的念头...
2011-08-16T09:34:00Z
2011-08-16T09:34:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】Unity 很多时候也不尽人意...Unity 形为诡异,不按常理出牌,终于逼我产生了放弃的念头... <a href="https://www.cnblogs.com/ldp615/archive/2011/08/16/asp-net-mvc-3-give-up-unity.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/ldp615/archive/2011/08/16/asp-net-mvc-3-unity-dependency-resolver.html
ASP.NET MVC 3:正确实现 UnityDependencyResolver - 鹤冲天
前日,dudu 写了篇文章 《想爱容易,相处难:当ASP.NET MVC 爱上 IoC》, dudu 在文中错误地使用了 Unity...
2011-08-15T16:24:00Z
2011-08-15T16:24:00Z
鹤冲天
https://www.cnblogs.com/ldp615/
【摘要】前日,dudu 写了篇文章 《想爱容易,相处难:当ASP.NET MVC 爱上 IoC》, dudu 在文中错误地使用了 Unity... <a href="https://www.cnblogs.com/ldp615/archive/2011/08/16/asp-net-mvc-3-unity-dependency-resolver.html" target="_blank">阅读全文</a>