惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net
腾讯CDC
GbyAI
GbyAI
I
InfoQ
博客园 - Franky
G
Google Developers Blog
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
Vercel News
Vercel News
博客园_首页
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
V
V2EX
T
The Blog of Author Tim Ferriss
M
MIT News - Artificial intelligence
雷峰网
雷峰网
H
Hackread – Cybersecurity News, Data Breaches, AI and More
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog

博客园 - 芭蕉

Model-View-ViewModel(MVVM) with MEF 使用EnvDTE自动格式整个工程 Inversion of Control Duck Typing in C# - 芭蕉 Dynamic Proxy C# 4.0 Dynamic --通过DLR直接调用IronPython 介绍一个Python进行函数式编程时有用的module - 芭蕉 - 博客园 UML类关系图标识速记 Python functions VisualStudio quick tips -- 快速在多个打开的代码文件间切换 VisualStudio quick tips --快速调整字体大小 结合实例实习F#(三)--理解函数式语言中的函数 VisualStudio quick tips --快速打开Properties Page 结合实例学习F#(二) --基本数据类型Discriminated Unions 结合实例学习F#(一) --快速入门 Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance Factory Method 顺时钟方向螺旋状打印矩阵元素 玩转Visual Studio ---Debug篇
lambda in F# - 芭蕉
芭蕉 · 2009-12-28 · via 博客园 - 芭蕉

F#中的lambda表达式很容易给人造成误解,好象它只支持单行的语句,其实不然,它是可以支持多行的,比如

let f = (fun () ->
    (printf "hello"
     printfn " world"
    ))

只是上面这种写法实在太过难看,所以一般推荐写成一行,语句之间用分号隔开,

let f = (fun() -> ( printf "hello"; printfn "world"))。

当然用分号隔开的可读性也不好,比如用F#来实现的SICP 3.1节中的make-withdraw,读起来还是很让人头痛的。

let makewithdraw (balance:int) = 
    
let refb = ref balance
    
fun amount -> ( if !refb >= amount then refb := !refb-amount; !refb; else failwith "Insufficient funds")