Foundations Of FSharp 1.1

本文介绍了F#编程语言的基础概念,包括标识符的定义与使用、不可变性特点、局部函数的概念及函数即值的特性,并通过示例展示了F#独特的语法魅力。

 

            说是翻译吧,也不能说是翻译,最多算是在看这本书的时候做的一些简单记录。

            因为其中加入了自己的一些理解,也跳过了许多东西,

            所以说不定某些重要的知识点也没讲到,希望不会误导到其他人吧,哈。

 

 第一章

  标识符

  在F#中你可以使用 let 来定义一个 标识符 并赋予他一个值、对象或是表达式。
  如:
  

  let n = 40

 

  在许多有编程背景的人眼中,会觉得:“这不就是一个变量嘛,还用你说?“
  如果这个跟变量一样,那我就不会拿出来说了,之所以叫标识符,是因为在定义之后,他的值是不可变的。
  但在之后的 Scope(作用范围) 中会讲到,在某些情况下,你可以重定义标识符,使他的值能够改变。
  标识符可以看成是变量,也可以看成是一个函数/方法,这意味着在F#中,不能确切的定义方法名、参数名,他们仅仅是一个标识符而已。
  你可以像定义一个变量一样去定义一个函数,只有一点区别,就是函数在let与等号之间具有两个或以上的标识符。
  如:

  let raisePowerTow x = x ** 2.0

  第一个标识符是这个函数的名字,raisePowerTow,接着的是它的参数,x。

 

   Values and Functions

  在F#中Values跟functions是无法区分的,因为functions就是values,F#的语法也把他们定义得非常相似。
   现在可以看到他们的语法是多么的相似了。唯一的区别就是,如果是函数的话,在函数名的后面跟了两个参数a跟b.
   你还可以发现,在这里add不需要明确的说明需要return什么,需要返回的类型,推断系统已经搞定了。
   Example:

 

  let n = 10
  let add a b = a + b
  let addFour add 4
  let result = addFour n
  printfn 
"result = %i" result

 

   

  F#同时也支持 局部函数( sometimes called partial or curried functions)
  这意味着你不需要一次把函数需要的参数全部输入了,就如上面的实例:

  let addFour add 4

 

  这是一个很好的证明:函数即是值(Function are Values)
  因为Function 就是 Values,所以当函数没有接收到需要的所有参数时,他返回的是一个新的准备接受剩余参数的函数
  如:

  let add a b = a + b
  add 4

 

  运行后可以看到:

 

  val it  : (int -> int) = <fun:it@4>

 

 

    但这种行为也并不是永远有效,比如一个函数需要用两个浮点数(float)的参数来表示一个point,
  如:

 

  let sub(a,b) = a - b
  let subFour = sub 4

 

  编译器将提示:

This expression was expected to have type
    
'a * b'
but here has 
type
    
int

 

  一般来说,你永远不会需要自己去明确的返回一个值,但如果是在一个函数里面呢?在F#中,这依赖与空格,
  但一般我更倾向于tab,在同一个tab之中,你键入的所有内容,仍处于这个函数的范围呢,这样就可以确定你需要返回的是什么了,
  如:

 

  let halfWay a b = 
      
let dif = b - a
      
let mid = dif / 2
      mid + a

  printfn 
"(halfWay 5 11) = %i" (halfWay 5 11)
  printfn 
"(halfWay 11 5) = %i" (halfWay 11 5)

  最终的结果是:

  printfn "(halfWay 5 11) = 8
  printfn "(halfWay 11 5) = 8

 


  暂时到这里。

转载于:https://www.cnblogs.com/SinSay/archive/2009/12/20/1628478.html

Foundations of Data Science》是一本由Jure Leskovec、Anand Rajaraman和Jeffrey Ullman合著的数据科学教材。该教材的中文版在优快云(中国最大的IT社区)上也有提供。 这本教材的主要目标是介绍数据科学的基本概念和原理,并提供学习数据科学的基础知识。它涵盖了数据的收集、存储、处理和分析等方面的内容。同时,该教材还详细讨论了数据挖掘、机器学习和网络分析等与数据科学密切相关的主题。 《Foundations of Data Science》主要包含三个部分。第一部分介绍了数据科学的基础知识,包括数据模型、概率统计和数据可视化等。第二部分探讨了数据挖掘和机器学习的基本概念与技术,如聚类、分类和回归分析等。第三部分重点讲解了网络分析、社交网络和推荐系统等领域。 通过学习该教材,读者将了解数据科学的核心理论和实践技巧。他们将学会如何收集和处理数据,如何应用不同的数据分析方法,以及如何使用数据驱动决策。此外,该教材还提供了大量的示例和案例研究,帮助读者更好地理解数据科学的应用场景和挑战。 总之,赵剑南在优快云上提供的《Foundations of Data Science》是一本优质的数据科学教材,不仅概括了数据科学的基础知识,还提供了实践技巧和应用案例。它对于初学者和从业人员来说都是一本不可或缺的学习资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值