福吉特的特点
轻松入门 . 许多库组件都有 参数的默认值 . 这使得库组件易于在中学习和使用 普通情况下,但仍然灵活和定制。 代码大小 .Fudgets程序通常 更短的 比相应的 用命令式语言编写的程序。 因为这个他们 拿 更少的时间 书写并包含 更少的错误 . 快速成型 [ 1 ]. fudgets系统的特点是 自动,自适应 布局系统 它允许你写一个工作的第一个版本 完全不用担心布局。 反之亦然:您可以从设计用户开始 与特定布局交互,然后向其添加功能。 分层设计 . 没有概念上的区别 在基本构建块和完整应用程序之间。 这意味着你可以 用组合对象轻松替换按钮等简单的东西, 或者将现有应用程序作为新应用程序的一部分进行重用。 可扩展性 . 库组件可以很容易地与代码绑定在一起 由应用程序程序员提供以形成新组件, 它可以像任何其他库组件一样使用。 你可以 从而为特定的应用程序区域创建扩展库。 陈述性风味 . 而通过 提供一个命令式GUI工具箱的接口,实际上, 在功能语言中使用命令式子语言, fudget还为 图形用户界面的构建。 状态封装 . 稳健性。 Fudget编程就像面向对象编程 在这种状态下,信息被封装并 不被任意使用/滥用。 组件 对应的对象称为 胡说八道 。状态信息可以 只有通过发送消息给fudget才能访问/更改 维护它。 并发 .Fudgets还提醒 并发程序设计。 假消息是一个运行在 与其他福吉特平行并通过 消息传递。 杜吉特还是很容易写的,比如 函数语言中的函数。 客户机/服务器编程和联网 .图书馆 为网络通信提供了一个骗局。 创建 连接到另一个进程(在同一台或另一台计算机上) 就像在图形用户界面中创建按钮一样简单。
函数式程序设计语言的特点
高阶函数 和 参数多态性 . 这两者一起提供了一个很好的工具 模块化程序设计 和 软件重用 它在许多方面比 面向对象编程中使用的子类型和类层次结构。 懒惰的评估 确保不执行计算 不必要的。 这也支持模块化 [ 2 ]例如,通过制作图书馆 组件更强大。 一个简单的例子:一个函数 获取一个列表并返回满足某些搜索的所有项 可使用标准 即使你只想找到第一个匹配的项目。 列表 匹配项仅在使用范围内计算。 因此,不需要了解两个不同的库 用于搜索列表的函数。 自动内存管理 . 函数式程序员不必担心分配 释放记忆。 对动态数据的内在支持 函数式语言中的结构使 使用列表和树状数据结构非常容易。 型式安全 . 现代函数语言中使用的类型系统非常强大 足以让大多数事情 静态类型检查。 这允许在 编译时。 相反,当用C编程时,通常需要 通过使用类型转换之类的东西来转义类型系统 和 无效* 指针。 因为这排除了编译器 从协助缺陷检测开始,您通常直到 程序崩溃的原因是“ 分段故障 ". 类似于Tcl/Tk、Perl等非类型语言的情况, LISP、Scheme、PHP、Python、JavaScript等。 简记法 .在Haskell中引入一个新函数 与大多数命令相比,符号开销非常低 语言。 这使得程序员更倾向于写 小而易读的函数而不是大的单片 代码块。
工具书类
Paul Hudak和Mark Jones: " 哈斯凯尔vs.阿达vs.C++ 对Awk对。。。 软件原型实验 生产力 “(1994年) 约翰休斯 : “为什么函数式编程很重要”。 (1984年)