F# 项目 在之前的几篇文章介绍的代码都在交互窗口(fsi.exe)里运行,但平常开发的软件程序可能含有大类类型和函数定义,代码不可能都在一个文件里.下面我们来看VS里提供的F#项目模板. F#项目模板有以下几种类型(以VS2015为例): Silverlight库创建Silverlight的类库 教程模板是一个控制台应用程序,里面包含了F#的示例,可通过这个项目快速了解F#相关内容. "可移植库"则可创建用于多平台的库,支持的平台在括号里说明. "库"用于创建类库…
函数式编程其实就是按照数学上的函数运算思想来实现计算机上的运算.虽然我们不需要深入了解数学函数的知识,但应该清楚函数式编程的基础是来自于数学. 例如数学函数\(f(x) = x^2+x\),并没有指定返回值的类型,在数学函数中并不需要关心数值类型和返回值.F#代码为let f x = x ** 2.0 + x,F#代码和数学函数非常类似,其实这就是函数式编程的思想:只考虑用什么进行计算以及计算的结果(或者叫"输入和输出"),并不考虑怎样计算. 其实,你可以把任何程序看成是一系列函数,输…
本文链接:http://www.cnblogs.com/hjklin/p/fs-for-cs-dev-1.html 简单介绍 F#(与C#一样,念作"F Sharp")是一种基于.Net框架的强类型.静态类型的函数式编程语言. 可以说C#是一门包含函数式编程的面向对象编程语言,而F#是一门包含面向对象的函数式编程语言. 可以查看官方文档了解更多信息. 本系列文章假设你在了解C#的情况下,将F#与C#在异同点上进行说明,让读者能快速地对F#有个系统的了解. 才疏学浅,错漏难免,如果您在阅…
Linux下通过rm -f删除/var/spool/postfix/maildrop/中大量的小文件时提示: "-bash: /bin/rm: Argument list too long" 如图: 通过ls /var/spool/postfix/maildrop/*|wc -l 发现文件数达到21万多,见附件: 原因:rm -f的参数过多 解决方法:可使用awk一次删除一个的方式进行删除,但必须先进入该目录下,操作方法如下:1.先进入该目录下:cd /var/spool/postfi…
Linux下通过 rm -f 删除大量的小文件时出现类似如下错误信息:  -bash: /bin/rm: Argument list too long 如下图所示: 问题原因 如果待删除文件中包含的小文件数量过多,通常是由于受到 shell 参数个数限制所致. 这个是Linux系统存在的限制,可以通过如下指令查看该参数值的配置:   getconf ARG_MAX 解决办法 注: 删除操作为高风险命令,请一定谨慎使用.确认通过快照等方式对数据进行了有效备份,或者明确可以删除. 如果待处理的文件数…
makefile下$(wildcard $^),$^,$@,$?,$<,$(@D),$(@F)代表的不同含义 $(filter-out $(PHONY) $(wildcard $^),$^) 常用用法为$(wildcard *.c) 表示列举当前目录下的所有.c文件 这里$^因为会包含依赖的文件名,如果包含的该文件存在,那么将返回其含路径的文件名 所以$(wildcard $^)就是用来过滤$^包含的所有文件并且该文件确实在本地存在. 自动化变量$?代表依赖文件列表中被改变过的所有文件. 自动化…
前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.…
前言 面向对象的思想已经非常成熟,而使用C#的程序员对面向对象也是非常熟悉,所以我就不对面向对象进行介绍了,在这篇文章中将只会介绍面向对象在F#中的使用. F#是支持面向对象的函数式编程语言,所以你用C#能做的,用F#也可以做,而且通常代码还会更为简洁.我们先看下面这个用C#定义的类,然后用F#来定义. //定义一个二维点 [DebuggerDisplay("({X}, {Y})")] public class Point2D { // 用于统计已实例化的数量 private stat…
本文链接:http://www.cnblogs.com/hjklin/p/fs-for-cs-dev-3.html 在第一篇中,我们介绍了一些基础数据类型,其实那篇标题中不应该含有"F#"字眼,因为并不是特有的. 在本篇中,我们介绍如数组这些集合类型以及部分F#特有的类型. 在第一篇里我们列了一个从0加到100的代码段,了解函数式编程的同学会说那个F#代码不正宗. 而现在的C#开发一般也会使用Linq的方式来代替循环,其实F#天生就是使用这种方式的,下面我们先介绍F#的集合类型,在之后…
本文链接:http://www.cnblogs.com/hjklin/p/fs-for-cs-dev-2.html 一些废话 一门语言火不火,与语言本身并没太大关系,主要看语言的推广. 推广得好,用的人多,问题也能及时得到解决,用的人就越多,这是一个良性循环,即使语言本身有很多不足也很快能得到解决. 但有的语言本身很好,使用者却不多,缺少交流和推广,致使进入恶性循环. <黑客与画家>作者把Lisp吹上天,但却没见他继续推广,至今在使用的团队和行业还是很有限. 而说到F#,国内也出过F#的高校教…