PureScript有什么特性

PureScript的特性:主要为严格求值、持久性数据结构和类型推论。PureScript的类型系统同类似的函数式语言如Haskell共享了很特征:代数数据类型及模式匹配、高种类类型(英语:Kind (type theory))、类型类及函数依赖和高秩多态。

一、PureScript的特性

PureScript特征主要为严格求值、持久性数据结构和类型推论。PureScript的类型系统同类似的函数式语言如Haskell共享了很特征:代数数据类型及模式匹配、高种类类型(英语:Kind (type theory))、类型类及函数依赖和高秩多态。PureScript的类型系统增加了对行多态(英语:Row polymorphism)和可扩展记录的支持。但是,PureScript缺乏对Haskell的某些更高级特征如GADT(英语:Generalized algebraic data type)和类型家族(英语:Type family)的支持。

PureScript编译器尝试产生尽可能可读的JavaScript代码。通过一个简单的FFI接口(英语:Foreign function interface),它还允许重用现存的JavaScript代码。

PureScript支持增量编译,而且编译器发行包括了支持为迭代开发建造源代码编辑器插件。存在编辑器插件针对很多流行的编辑器,包括Vim、Emacs、Sublime Text、Atom和Visual Studio Code。

PureScript通过它的“类型孔洞”特征支持“类型驱动开发”,在其中可以构造具有缺失子表达式的程序。编译器随后将尝试推论出缺失子表达式的类型,并将这些类型报告给用户。这个特征已经启发了GHC的类似工作。

二、PureScript是什么

PureScript编程范型函数式设计者Phil Freeman发行时间2013年,​9年前​(2013)目前版本0.15.8 (2023年3月6日) 型态系统类型推论, 静态, 强类型许可证三条款BSD许可证文件扩展名.purs网站www.purescript.org启发语言Haskell, JavaScriptPureScript是一种强类型、纯函数式、最终编译为JavaScript的编程语言。PureScript可以开发网络应用程序、服务端应用程序,也可以借助Electron开发桌面应用程序。其语法大多与Haskell相当。此外,它还引入了行多态性和可扩展记录。不过,与Haskell相反的是,PureScript坚持严格求值策略。

延伸阅读

JavaScript是什么

JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

JavaScript语言特点

JavaScript脚本语言具有以下特点:

(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。

(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较倾向于使用JavaScript以减少对服务器的负担,而与此同时也带来另一个问题,安全性。

而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖JavaScript在客户端进行支持。

文章标题:PureScript有什么特性,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/49653

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年4月16日
下一篇 2023年4月17日

相关推荐

  • 项目管理中的领导与影响力

    项目管理成功在很大程度上依赖于有效的领导与影响力。涉及项目管理的领导与影响力,关键要素包括1、明确的愿景和目标、2、有效沟通、3、权威与责任感、4、团队建设与协作、5、决策能力、6、适应变化与危机处理能力。领导者应该清晰地定义并传达项目愿景,确保团队聚焦共同目标。高效的沟通技巧是确保信息流畅传递及理…

    2023年11月30日
    45800
  • 如何管理好百亩农场项目

    假想一篇博客文章: 农场管理需要精细策划、有效的资源配置、现代化技术的应用、专业人员的培训、以及持续的质量控制。 其中,精细策划是管理好百亩农场项目的基础,它包括了对农田的规划、作物的种植周期、生长条件、市场分析以及风险评估等多个环节。精细策划能够确保农场的各项活动有序进行,同时优化资源分配和提高作…

    2024年4月10日
    4500
  • SMPL模型和SCAPE模型的主要区别是什么

    SMPL模型和SCAPE模型的主要区别是:1、建模原理;2、逼真度;3、应用场景。SMPL模型主要基于人体的关节点和线性皮肤权重,通过线性组合的方式来生成人体形状和姿态。而SCAPE模型则更加注重对人体表面细节的建模,考虑了更多的形状变化和皮肤细节。 一、SMPL模型 SMPL(Skinned Mu…

    2023年7月30日
    76400
  • cips与swift系统区别

    cips与swift系统区别在于:1、定义不同;2、划转对象不同;3、处理对象不同;4、主旨不同。CIPS是指人民币跨境支付系统,是专司人民币跨境支付清算业务的批发类支付系统;SWIFT是指环球同业银行金融电信协会,是一个国际银行间非盈利性的国际合作组织。 1、定义不同 CIPS是指人民币跨境支付系…

    2023年1月31日
    2.4K00
  • devops具体做什么

    开篇直白阐述:DevOps是一组过程、方法与系统的统称,目的在于促进开发(Development)与运维(Operations)的协同工作。它的核心为1、缩短系统开发周期、提高交付速度;2、提升部署频率;3、实现更快的市场反应速度;4、提高产品质量;5、提高运维效率;6、增强团队间的沟通协作。针对缩…

    2024年3月26日
    7600
  • 研发项目失败的主要原因分析

    在研发项目管理领域,识别项目失败的关键因素对于未来项目的成功有着不可忽视的作用。主要原因包括1、目标不清晰,2、资源分配不当,3、沟通不充分,4、风险管理不足。目标不清晰导致团队缺乏明确方向,资源分配不当则可能引起人力和财力的浪费。沟通不充分易造成信息断层,阻碍协同工作,而风险管理不足则使项目在面对…

    2023年11月14日
    55400
  • oa赊销什么意思

    赊销意味着卖方提供商品或服务,但不立即收取款项,而是允许买方在未来的某个约定时间支付费用,这是一种基于信用的交易方式。1、基于信用的销售模式供应商为了促销或与客户建立长期合作关系,可能提供赊销服务。2、延迟支付机制涉及到期后支付货款,可能包括额外费用或利息。3、风险和收益并存卖方面临回款风险,但可以…

    2024年1月17日
    27400
  • 行政办公oa

    标题:行政办公OA系统在提高工作效率中的作用 摘要: 行政办公OA系统对于提高工作效率具有显著的作用,包括1、优化文档管理流程、2、加速信息交流、3、自动化常规任务、4、支持移动办公及5、数据分析与决策支持。其中,优化文档管理流程意味着减少物理文档的使用,实现资料的电子化管理,降低查找与存储成本,同…

    2024年1月16日
    17700
  • devops任务什么意思

    开篇便明确认知,DevOps任务指的是集成开发(Development)与运维(Operations)的一系列活动,旨在促进软件交付的速度与质量提升。1、加速软件发布流程 2、提升跨职能团队的协作效率 3、持续改进产品反馈循环。这之中,提升跨职能团队的协作效率显著促进了沟通渠道的通透性,确保了不同角…

    2024年3月26日
    6600
  • 产品管理的基本概念是什么

    产品管理是一个跨职能的角色,专注于一个产品从概念到市场推出,甚至其整个生命周期的各个方面。主要概念包括:一、需求分析;二、产品开发;三、市场定位;四、产品推广;五、数据分析与优化。这个角色涉及多个领域,包括市场研究、项目管理、用户体验设计和数据分析等,旨在确保产品符合市场需求并达到商业目标。 一、需…

    2023年9月22日
    47800

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部