摘要: 使用F# 的时候老是会忘记List 里面的函数的使用方法,可能是有些的确是用的有点少,今天把这些都试了一下,弄了点注释,把结果运行结果也弄上去了,方便以后查看:)。说明一下:如果函数使用的List为SrcA 和SrcB,说明此函数需要的两个链表必须为等长的。如果使用的是Src 和Src2 则没有这样的限制。 下面就贴出代码:):let src = [1;4;2;3]let src2 = [3;7;5;3;5]let srcA = [1;2;3;4]let srcB = [4;3;2;1]let myAdd x y = x + ylet operator x y z= x + y... 阅读全文
posted @ 2012-11-19 17:58 ZackZhou 阅读(1500) 评论(0) 推荐(2) 编辑
摘要: 关于F#3.0的新功能Type provider,微软为我们提供了内置的6种type providers,用来处理不同数据存储结构.但是有些情况这些内置的方法并不能满足需求,因此就需要用户自己定义适合自己需求的TP。那么在自定义TP前,应该要考虑是不是真的需要自定义TP: 是否有一不受程序逻辑影响,不经常变动的schema(比如数据库由表、记录、字段、索引等组成) 是否经常需要使用到此TP 当程序运行时,此schema是否经常变动Ok,在定义自己的TP前,需要去F# sample pack中下载两个源文件:SampleProviders ->Shared,然后在你的F#库文件中将其加入, 阅读全文
posted @ 2012-11-17 18:55 ZackZhou 阅读(1636) 评论(0) 推荐(1) 编辑
摘要: 由于每次到项目统计的时候,都需要统计一下Run的分析情况,手动来做会非常麻烦,由此想写一个小程序统计一下分析情况,下面是代码:// Learn more about F# at http://fsharp.net// See the 'F# Tutorial' project for more help.#r @"C:\Program Files()\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\Type Providers\FSharp.Data.TypeProviders.dll"#r @& 阅读全文
posted @ 2012-11-12 12:33 ZackZhou 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 这个是很早很早之前作的一个小东西,不过由于工作时间原因,没能做好,留个笔记:// Learn more about F# at http://fsharp.net//namespace WeatherDemo#if INTERACTIVE#r @"C:\Program Files\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\Type Providers\FSharp.Data.TypeProviders.dll"#r @"C:\Program Files\Reference Assemblies\M 阅读全文
posted @ 2012-11-12 12:27 ZackZhou 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 当时根据涛哥的要求,做了一个小工具,具体作用就是上传或下载指定类型文件到云服务器。当时涛哥正在做VS的一个插件: F# snippet,类似于C#中的.net AutoCode v4.0,区别就在于它们工作的语言不同。这个工具使用到了F#3.0的新功能:Type Provider and Query.如果你想尝试一下这个工具(当然,你需要做些修改:)),那么你需要F# 3.0 或者 VS2012。如果只想了解一下这个工具,也不错~ 呵呵下面是代码:)// Learn more about F# at http://fsharp.net// See the 'F# Tutorial 阅读全文
posted @ 2012-11-12 10:53 ZackZhou 阅读(2149) 评论(1) 推荐(0) 编辑
摘要: 对于F#程序员来说,修改特定内存地址空间的值并不是一件很常见的事,和C#一样,F#代码由F#编译器编译之后生产托管模块,但是F#中并没有提供C#中的unsafe功能,那么如何在F#中修改给定内存地址空间的值呢,下面的这些代码就可实现此要求://Memory Address,you may get this address from some other operations//not sure if this is readable safe addresslet p = 0x002100000n//Pointer to the Addresslet address : nativeptr&l 阅读全文
posted @ 2012-11-10 15:04 ZackZhou 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 在做这个面试题之前,我们需要了解一下关于Ascii码的一些知识: 0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符) 32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字 65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等 后128个称为扩展ASCII码,目前许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位 用于确定附加的128 个特殊符号字符、外来语字母和图形符号Ok,知道这些后,先把代码贴出来:module CountNumb... 阅读全文
posted @ 2012-11-10 12:38 ZackZhou 阅读(1238) 评论(1) 推荐(0) 编辑
摘要: 看书笔记~,如有错误,说明看书不认真~~ 这个不好画画。。 就弄成个图片了。 阅读全文
posted @ 2012-11-09 16:46 ZackZhou 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 之前在TryFsharp上发不过一系列F#的东西,现在挪到这来了:),列一下:入门1:http://www.cnblogs.com/tryfsharp/archive/2011/12/31/2308503.html入门2:http://www.cnblogs.com/tryfsharp/archive/2011/12/31/2308504.html入门3:http://www.cnblogs.com/tryfsharp/archive/2012/01/04/2312153.html入门4:http://www.cnblogs.com/tryfsharp/archive/2012/01/04/2 阅读全文
posted @ 2012-11-08 20:23 ZackZhou 阅读(305) 评论(0) 推荐(1) 编辑
摘要: 继上一篇的深度遍历,下面实现以下图的广度遍历,广度遍历中使用到了队列, 即代码中的let nodesQueue = new Queue<Node>(),由于F# 中没有指针,如果我们需要在递归中保存一个随时会发生变化的值时,我会选择ref类型的变量。 下面顺便说说ref类型变量的一些基本操作:let x = ref 1 定义一个ref类型的变量let getValue = !x !x用来获取此ref变量的值,这里将其值赋给了getValue变量x:=2 将x 的值变为2let newValue = !x 这里,变量newValue的值就是2了。接下来就是此遍历的具体代码了,没有什. 阅读全文
posted @ 2012-11-08 18:15 ZackZhou 阅读(1216) 评论(0) 推荐(1) 编辑