`
cookoo
  • 浏览: 653475 次
  • 性别: Icon_minigender_1
  • 来自: Shanghai
社区版块
存档分类
最新评论

Practical Ocaml阅读笔记1-4章

    博客分类:
  • FP
阅读更多
1. 重定义类型并不会出警告?(不对吧?)

2. int是31位,Int32才是32位。

3. bytecode模式才能debug

4. 不支持运算符重载,但能定义新运算符?(确实支持运算符重载的阿?)

5. 一个函数只能返回一种类型,注意有exception的时候。

6. 递归函数应该尽量用非递归函数封装起来以免计数参数外露

7. 尾递归判断的两个条件:1.递归调用不在try/with之中,2.返回值是确定的,不含递归调用

8. 一旦被label标识为命名参数就不能在按普通参数那样调用了(没办法,否则和curry冲突)

9. pattern match的as语法竟然没有讲,用了一种很难看的方式表达。。。

10. composing function是不好的?(其实可以用来pipeline,如:)
let (|>) x f = f x;;
[1;2;3] |> List.map (fun x -> x * x) |> List.fold_left (+) 0;;

不用的话代码就要lispy点了。。。

与F#的差别:
- F#的int是32位的
- ocaml允许递归定义无限序列:let x = 1::x;; 而F#限制这种形式
- ocaml允许定义任意类型的空数组:let a = Array.create 10 [] 而F#要明确声明类型为基本类型或函数


分享到:
评论
2 楼 cookoo 2006-11-09  
现在只读到第7章,还早着呢。

GUI,见过一些GTK的例子(比如一个p2p程序MLDonkey, 还有点人气),我想应该足够成熟了。QT的邦定好像没有。。。另外PO是不讲GUI的,O'reilly讲,但讲的不是GTK。

Ocaml使用轻量级线程,共享内存模式。因为并行GC的困难Ocaml的leader决定永远不支持SMP,要用多CPU的话只能借助于外部的message-passing库。还有个分布式的网络通讯框架ensemble, 不过属于研究性项目。
1 楼 potian 2006-11-09  
读得怎么样了,GUI程序GTK2绑定稳步稳定,Qt行不行,处理多线程和网络通讯如何?

相关推荐

    ocaml-camlp4-devel-4.05.0-0.4.gitfc12d8c7.el7.x64-86.rpm.tar.gz

    其中,"ocaml-4.05.0-6.el7.x86_64.rpm"为OCaml基础运行时环境的安装包,而"ocaml-camlp4-4.05.0-0.4.gitfc12d8c7.el7.x86_64.rpm"和"ocaml-camlp4-devel-4.05.0-0.4.gitfc12d8c7.el7.x86_64.rpm"则提供了Camlp4预...

    ocaml-gettext-0.3.7-1.el7.x64-86.rpm.tar.gz

    标题所指的文件名为“ocaml-gettext-0.3.7-1.el7.x64-86.rpm.tar.gz”,这是一个压缩包文件,其中包含了OCaml语言的gettext工具的安装包。OCaml是一种通用的函数式编程语言,广泛应用于领域如金融、游戏开发、虚拟机...

    ocaml-gettext-devel-0.3.7-1.el7.x64-86.rpm.tar.gz

    ocaml-gettext-0.3.7-1.el7.x86_64.rpm是OCaml-Gettext的二进制包,而ocaml-fileutils-0.4.4-9.el7.x86_64.rpm和ocaml-fileutils-devel-0.4.4-9.el7.x86_64.rpm提供了文件操作相关的工具和开发库。 这些文件的集合...

    ocaml-hivex-1.3.10-6.12.el7-9.x64-86.rpm.tar.gz

    例如,ocaml-4.05.0-6.el7.x86_64.rpm是OCaml编译器的包,ocaml-compiler-libs-4.05.0-6.el7.x86_64.rpm提供了OCaml编译器的库文件,ocaml-runtime-4.05.0-6.el7.x86_64.rpm则是OCaml运行时环境。这些包通常需要一同...

    ocaml-ocamlbuild-devel-0.11.0-9.el7.x64-86.rpm.tar.gz

    - readme.md文件通常是一个Markdown格式的文档,提供了软件包的基本信息、安装说明等,用户应该在安装前仔细阅读。 - ocaml-4.05.0-6.el7.x86_64.rpm是OCaml语言的核心运行时环境包。 - ocaml-compiler-libs-4.05.0-...

    ocaml-camlp4-devel-4.05.0-0.4.gitfc12d8c7.el7.x86_64.rpm

    ocaml-camlp4-devel-4.05.0-0.4.gitfc12d8c7.el7.x86_64.rpm

    ocaml-tic-tac-toe:用 OCaml 编写的无与伦比的井字游戏

    Ocaml-井字游戏用 Ocaml 编写的无与伦比的井字游戏设置为了运行包含的安装脚本,请确保您的计算机上安装了自制软件。 可以在找到安装说明。下载项目 git clone ...

    ocaml-hivex-devel-1.3.10-6.12.el7-9.x64-86.rpm.tar.gz

    4. "ocaml-runtime-4.05.0-6.el7.x86_64.rpm"是OCaml运行时环境。 5. "hivex-1.3.10-6.12.el7_9.x86_64.rpm"是hivex库的运行时版本。 6. "perl-hivex-1.3.10-6.12.el7_9.x86_64.rpm"是hivex库的Perl绑定。 7. "ocaml...

    ocaml-4.02.3-x86_64-mingw64-installer4-opam.exe

    ocaml-4.02.3-x86_64-mingw64-installer4-opam.exe ocaml-4.02.3 windows 64位/32位 安装包 Objective Caml(OCaml)是Caml编程语言的主要实现 截至2017.11.14 ocaml最新稳定版本 md5: 0402518b131f32e52cbf1b8457e...

    ocaml-findlib-devel-1.7.3-7.el7.x64-86.rpm.tar.gz

    ocaml-findlib-devel-1.7.3-7.el7.x64-86.rpm.tar.gz是一个包含了多个RPM软件包的压缩文件,它主要针对基于Red Hat的企业版Linux 7(RHEL 7)的64位(x86_64)系统。该压缩包由多个文件构成,每个文件都是针对特定...

    ocaml-ocamlbuild-doc-0.11.0-9.el7.x64-86.rpm.tar.gz

    4. ocaml-runtime-4.05.0-6.el7.x86_64.rpm:运行时库安装包,提供了OCaml程序运行时所需的库文件和环境。 5. ocaml-ocamlbuild-0.11.0-9.el7.x86_64.rpm:ocamlbuild是一个用于构建OCaml项目的工具,此安装包包含了...

    llvm-ocaml-doc-3.4.2-8.el7.x64-86.rpm.tar.gz

    "llvm-ocaml-doc"指的是LLVM OCaml文档包,版本为3.4.2,更新为8次。压缩包文件的扩展名“.tar.gz”表示这是一个归档文件,通过tar工具和gzip压缩算法打包而成。 文件内容包括了LLVM项目中与OCaml语言绑定相关的...

    ocaml-asn1-combinators:在OCaml中嵌入类型化的ASN.1语法

    asn1-combinator —在OCaml中嵌入类型化的ASN.1语法%%版本%% asn1-combinator是用于在OCaml中表达ASN.​​1的库。 跳过ASN.1的符号部分,然后将抽象语法直接嵌入该语言中。 这些抽象语法表示形式可用于解析,...

    ocaml-brlapi-0.6.0-16.el7.x64-86.rpm.tar.gz

    这是因为在tar.gz压缩包中包含了ocaml-brlapi-0.6.0-16.el7.x86_64.rpm以及其他相关的依赖rpm文件,包括ocaml-4.05.0-6.el7.x86_64.rpm、ocaml-compiler-libs-4.05.0-6.el7.x86_64.rpm、ocaml-runtime-4.05.0-6.el7....

    ocaml-fileutils-devel-0.4.4-9.el7.x64-86.rpm.tar.gz

    OCaml是一种编程语言,它以其高级的类型系统和垃圾回收机制而著称,广泛应用于金融、学术研究和系统编程等领域。OCaml-fileutils-devel是一个包含OCaml语言开发工具的软件包,它为开发者提供了文件操作相关的库和...

    ocaml-fileutils-0.4.4-9.el7.x64-86.rpm.tar.gz

    在本文中,我们将详细探讨名为“ocaml-fileutils-0.4.4-9.el7.x64-86.rpm.tar.gz”的压缩包文件,该文件是一个tar.gz格式的压缩包,包含了一系列以rpm结尾的软件包文件,这些文件是基于Red Hat Enterprise Linux...

    ocaml-emacs-4.05.0-6.el7.x64-86.rpm.tar.gz

    1. 文件名含义:文件“ocaml-emacs-4.05.0-6.el7.x64-86.rpm.tar.gz”是一个包含多个RPM软件包的压缩包。"ocaml-emacs"指的是这个包是专门为OCaml语言定制的Emacs文本编辑器的版本,其中"4.05.0-6"代表软件的版本号...

    ocaml-findlib-1.7.3-7.el7.x64-86.rpm.tar.gz

    标题中指明的文件“ocaml-findlib-1.7.3-7.el7.x64-86.rpm.tar.gz”是一个包含OCaml编程语言Findlib模块的RPM安装包,适用于x86_64架构的64位CentOS 7系统。该包经过压缩并采用tar.gz格式,确保在下载和传输过程中的...

    ocaml-extlib-1.5.3-7.el7.x64-86.rpm.tar.gz

    从给定的文件信息来看,该压缩包文件是一个包含OCaml编程语言相关库和运行时的安装包。该包主要针对Linux系统中的企业版7(el7)版本,尤其是64位架构,即x86_64架构的系统。文件的名称表明了该压缩包的内容包括...

    ocaml-srpm-macros-5-2.el7.x64-86.rpm.tar.gz

    从文件的标题来看,我们可以推断出软件包的名称是“ocaml-srpm-macros”,版本号为“5-2.el7”,适用于64位x86架构的Red Hat Enterprise Linux版本7。 在描述中,文件提供了一个基本的安装流程。第一步是解压tar.gz...

Global site tag (gtag.js) - Google Analytics