F#系列随笔索引

简介:

循着我的Google笔记本,我看到第一条与F#相关的笔记发生在4月7日,到今天刚好6个月整。

为何要学习F#?这是个首当其冲的问题,跟当初“Java还是C#”这样的问题不同,现在是在学习一门新语言。《程序员修炼之道》的一句话“每年至少学习一种新语言”让我蠢蠢欲动,除了F#,去年还看过一些Python,甚至写过一些小程序。但最终选择了F#,也许有一篇文章起到了很大的作用,如果你没有用过函数式编程语言,可以看看这篇文章;还有可能是因为这一篇《谁在用F#》(后来知道这其实是《Foundations of F#》第一章里面的部分内容)。尤其是后面这篇文章,对F#的描述真的能雷到人。

最近我发现,我周围的程序员在技术的选择上日趋理性(日渐衰老?...),尤其是一致认为“语言并不重要,重要的是...”,省略掉的内容也许不尽相同,但语言肯定是不重要的了。

真的是这样吗?我倒不这么觉得。但在这样的背景下,如果一门语言的广告不能雷到人,还面对C#这样成熟的语言,就真的很难引起人们的兴趣

幸运的是,我被雷到了。真正开始学习F#是在7月份之后(因为4、5、6这3个月经历了工作的变动)。初学F#肯定会遇到一些令人困惑的地方,比如副作用(side effect),柯里化,函数是一等公民云云,那时经常是从一个概念跳到另一个概念,不过看得多了,就慢慢熟悉了。

我希望能有一个F#教程,它能在一些简单的例子中帮我们拨开乌云,《Foundations of F#》这本书不错,不过有些繁琐、冗长。我把书中的内容整理了一下,也会把在《Expert F#》或者网上其它文章的内容加进来,另外我还喜欢把自己想到的F#与C#的异同点给写出来。这些就是我的《F#探险之旅》,本来我还想起名为《无废话F#》或《Essential F#》,感觉都不如探险来的贴切。

Chris Smith的F#快速上手(翻译)
F# 20分钟快速上手(一)
F# 20分钟快速上手(二)

《F#探险之旅》

F#探险之旅(一):选择不同的开发方式
F#探险之旅(二):函数式编程(上)
F#探险之旅(二):函数式编程(中)
F#探险之旅(二):函数式编程(下)
F#探险之旅(三):命令式编程(上)
F#探险之旅(三):命令式编程(下)
F#探险之旅(四):面向对象编程(上)

F#探险之旅(四):面向对象编程(中)
F#探险之旅(四):面向对象编程(下)
F#探险之旅(五):透过F#理解函数式编程(上)(FP的基本特性)
F#探险之旅(五):透过F#理解函数式编程(中)(FP的列表操作)
F#探险之旅(六):F#代码的组织(整理前面介绍过的三种范式,为实战做好准备)
F#探险之旅(七):在F#中进行单元测试(NUnit & FsUnit,后者也是LOP的一个好例子)
F#中的事件(

F#与LOP(Language-Oriented Programming)
理解F#中的模式匹配与活动模式

F# 应用
使用F#绘制Mandelbrot集合
Eratosthenes筛法的F#实现
F#中有趣的计量单位

其它
从这里开始学习F#
推荐F#最近的一些资源

在目前计划中的:
F#探险之旅(五):透过F#理解函数式编程(下):介绍FP中的Continuation和Monad特性;
F#中的工作流;
F#中的Quotation及其应用;
F#与C#代码的互操作;
F#与UI:主要是介绍在Windows应用和ASP.NET应用开发中使用F#;
F#实例:做一个F#实战的例子(综合应用前面讲过的内容);

《探险之旅》的主要目的在于作出一份简单的帮助文档,能帮助有C#或VB.NET编程经验的程序员快速上手,希望能不断接近这个目标。

注意
: 目前为止,这个系列文章中的代码均在F# 1.9.4.17版本下编写,在F# CTP 1.9.6.0版本下可能不能通过编译。由于本人的电脑的服役时间已经超过了5年,所以我也不打算让它运行VS2008,但VS 2008 Express版上又不能集成F# CTP,我现在使用的环境仍然是VS2005下的F#1.9.4,但我会在不远的将来买新电脑,到时也会转移到更新的F#版本,不过我相信这对我F#的学 习不会有大影响。

2008.11.17 更新:从现在开始将主要使用F# CTP 1.9.6.0版本 :-}


本文转自一个程序员的自省博客园博客,原文链接:http://www.cnblogs.com/anderslly/archive/2008/10/08/fs-posts-indices.html,如需转载请自行联系原作者。

目录
相关文章
|
缓存 JavaScript 小程序
在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例
在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例
在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例
|
12月前
|
SQL 数据可视化 数据挖掘
报表工具有哪些?盘点热门报表工具的优缺点
报表工具有哪些?盘点热门报表工具的优缺点
|
10月前
|
前端开发 JavaScript 开发者
《解锁CSS Flex布局:重塑现代网页布局的底层逻辑》
CSS Flex布局(弹性盒子布局)是现代网页设计中的重要技术,彻底革新了传统布局方式。它通过“容器”与“项目”的概念,提供灵活的空间分配与排列规则,轻松实现水平/垂直居中、等高列、响应式布局等复杂需求。相比传统方法,Flex布局代码简洁高效,显著提升开发体验与页面适应性。然而,浏览器兼容性及对极复杂场景的支持仍需注意。作为网页布局的核心工具之一,Flex布局推动了用户体验与设计创新的进一步发展。
190 13
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
454 1
|
11月前
|
存储 运维 监控
提升Windows Server环境安全性:ADAudit Plus的五大关键优势
在Windows Server环境中,内置的安全审计工具虽有用,但存在专业门槛高、耗时及功能缺失等问题。第三方工具ADAudit Plus应运而生,其五大优势包括:日志聚合、关键活动检测、定制化报告、灵活安全配置和长期日志保留,有效提升系统监控与合规能力。选择ADAudit Plus,助力企业更高效应对审计挑战,强化安全性。
260 2
|
消息中间件 算法 调度
深入理解操作系统之进程管理
本文旨在通过深入浅出的方式,带领读者探索操作系统中的核心概念——进程管理。我们将从进程的定义和重要性出发,逐步解析进程状态、进程调度、以及进程同步与通信等关键知识点。文章将结合具体代码示例,帮助读者构建起对进程管理机制的全面认识,并在实践中加深理解。
|
程序员 调度 开发工具
DOS系统
【10月更文挑战第15天】DOS系统
840 3
|
机器学习/深度学习 人工智能 算法
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
眼疾识别系统,使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对眼疾图片4种数据集进行训练('白内障', '糖尿病性视网膜病变', '青光眼', '正常'),最终得到一个识别精确度较高的模型。然后使用Django框架开发Web网页端可视化操作界面,实现用户上传一张眼疾图片识别其名称。
370 9
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
|
SQL 数据挖掘 数据处理
如何在 SQL Server 中使用 `ASCII`
【8月更文挑战第10天】
489 4
如何在 SQL Server 中使用 `ASCII`
|
关系型数据库 MySQL 测试技术
MySQL外键使用的考量与建议
综上所述,虽然MySQL的外键提供了一种强大的工具来维护数据之间的一致性和完整性,但在决定是否使用外键时,需要权衡其带来的好处和潜在的性能影响。通过仔细的规划和测试,可以最大化地利用外键的优势,同时避免一些常见的陷阱。
455 1