`

Prelude.ls:JavaScript函数式编程库

 
阅读更多

Prelude.ls是一个JavaScript函数式编程库,这是一个基础库,在一定程度上基于Haskell(一种纯函数式编程语言)的Prelude模块。 

Prelude.ls基于LiveScript编写,LiveScript是JavaScript语言的前身,由网景(Netscape)在设计浏览器的时候,为了提高网页设计的互动性而开发。随后Netscape与Sun公司进行合作,共同发展LiveScript语言,并将LiveScript语言改名为JavaScript。 


与其他的库(如underscore.js)不同,在prelude.ls中,所有函数被“柯里化(Currying)”,是指把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数。 

Javascript代码 
  1. var takeFour = take(4);  
  2. takeFour('hello there'); //=> 'hell'  

对象映射到对象,字符串映射到字符串: 

Javascript代码 
  1. map(function(x){ return x*2; }, {d: 3, e: 4}); //=> {d: 6, e: 8}  

在某些情况下,可以使用对象来作为函数: 

Javascript代码 
  1. map({on: 1, off: 0}, ['on''on''off''on''off']); //=> [1, 1, 0, 1, 0]  

项目主页:http://gkz.github.com/prelude-ls/
分享到:
评论

相关推荐

    JavaScript函数式编程库Prelude.ls.zip

    Prelude.ls是一个JavaScript函数式编程库,这是一个基础库,在一定程度上基于Haskell(一种纯函数式编程语言)的Prelude模块。 Prelude.ls基于LiveScript编写,LiveScript是JavaScript语言的前 身,由网景...

    prelude.scm:R5RS的通用现代功能库-开源

    为了弥补这一不足,出现了`prelude.scm`,这是一个开源的、与R5RS完全兼容的库,旨在扩展Scheme的功能,使其更符合现代编程需求。 `prelude.scm`库引入了一系列有用的过程和惯用法,极大地增强了Scheme的实用性。...

    meteor-preludels:为meteor 打包的Prelude.ls

    Prelude.ls是函数式编程语言Lisp的灵感来源,它在JavaScript环境中提供了丰富的函数式编程工具。这个库的独特之处在于它的柯里化(Currying)特性,这是一种将接受多个参数的函数转化为一系列只接受一个参数的函数的...

    prelude:JavaScript上的函数式编程实验

    使用JavaScript和功能围绕功能性编程概念进行实验。 大多数概念来自语言安装npm install这是一个由管理的单一存储库项目。单元测试单元测试使用,覆盖范围使用。 要运行所有测试: npm run test

    prelude-ls:prelude.ls是一个面向功能的实用程序库-功能强大且灵活,几乎所有功能都可以使用。 它是用http编写的,并且是http的推荐基础库

    前奏 是一个面向功能的实用程序库。 它功能强大且灵活。 它的几乎所有功能都可以使用。... 您可以通过npm install prelude-ls发展make test测试make build以从src构建lib make build-browser生成浏览器版本

    prelude.kak:Kakoune的外壳程序块的前奏

    与其他编程语言中的kak_escape相似, shell_escape会转义每个参数,以便可以将其安全地传递给Kakoune。 实现:单引号将每个参数括起来,并将单引号加倍。 注意:结果文本应不加引号,并且既不能用于双引号,也不能...

    prelude-ts:用于打字稿和javascript的函数式编程,不可变集合和FP构造

    前奏介绍prelude-ts(以前为prelude.ts)是一个TypeScript库,旨在使函数式编程概念在TypeScript中可访问和高效。 请注意,即使它是用TypeScript编写的,也可以从JavaScript(包括ES5)完全使用! 它提供不变的集合...

    LearningHaskell:学习函数式编程

    **Haskell**是一种纯函数式编程语言,以其优雅的语法、强大的类型系统和对并行处理的优秀支持而闻名。在“Learning Haskell: 学习函数式编程”中,我们将探讨这个高级编程语言的核心概念、语法特性以及如何利用它来...

    purescript.github.io:项目首页

    标题 "purescript.github.io:项目首页" 指向的是PureScript的官方GitHub页面,这是一个专注于纯函数式编程语言PureScript的项目。这个页面是该语言社区的主要入口点,提供有关PureScript的信息、文档、资源和示例。...

    swift-Swiftµframework简单的函数式编程工具

    总的来说,Swift µframeworks如Prelude提供了丰富的函数式编程工具,它们是对Swift标准库的有力补充,可以帮助开发者遵循函数式编程范式,提升代码质量,降低维护成本。通过深入研究和使用这些库,开发者可以不断...

    Rust 和 Haskell 函数编程

    在 Rust 和 Haskell 中,函数式编程的实践也包括函数组合,即将多个小函数串联起来形成更复杂的逻辑,以及使用函数库如 ` Iterator`(Rust)和 `Prelude`(Haskell)提供的工具,简化常见操作。 学习 Rust 和 ...

    Applied-fp-course:应用函数式编程课程-从练习过渡到可运行的应用程序!

    《Applied-fp-course》是一个专注于应用函数式编程的课程,主要目标是帮助学习者从理论练习逐步过渡到创建实际运行的应用程序。在这个课程中,我们将深入探讨Haskell这一功能强大的函数式编程语言,并通过一系列实践...

    hskll.github.io:HaskellChina社区主页

    6. **Prelude库**:介绍Haskell预定义的函数和类型,以及如何使用它们。 7. **Haskell应用实例**:展示Haskell在实际问题中的应用,如网络编程、图形处理等。 8. **Haskell工具链**:包括 Cabal、Stack 等构建和管理...

    prelude:基于 Haskell Prelude、Fsharp 和 OCaml 的 Python 函数式编程库

    Prelude 是一个函数式编程库,其灵感来自 Haskell 等 FP 语言,它具有快速 lambda 函数、易于柯里化、柯里化函数和许多有用的高阶函数等不错的特性 谓词函数 类型检查功能 is_tuple Test if is a tuple is_list ...

    maven-glassfish-plugin-3.0-prelude.jar

    maven-glassfish-plugin-3.0-prelude.jar

    maven-glassfish-extension-3.0-prelude.jar

    maven-glassfish-extension-3.0-prelude.jar

    函数程序设计 教程 国内最好的教材

    函数程序设计是一种编程范式,它强调程序的执行是通过一系列函数调用来完成的,而非传统的命令式编程中的状态改变和循环。本教程是国内优秀的函数程序设计教材之一,主要介绍了Haskell这门函数式语言的基本概念和...

    Rust 的异步 Redis 客户端 .zip

    弗雷德 Valkey 和 Redis 的异步客户端例子use fred::prelude::*;#[tokio::main]async fn main() -> Result<(), Error> { let config = Config::from_url("redis://localhost:6379/1")?; let client = Builder::from_...

    lambdapi:Haskell中的依赖类型Lambda演算

    相依型Lambda演算此项目是对“”论文的源代码的重组。 这个项目的目标是使代码... for help.ST> :load prelude.st相依型Lambda演算$ stack run lpInterpreter for lambda-Pi.Type :? for help.LP> :load prelude.lp

    waifu2x.rs:waifu2x-ncnn-vulkan Rust 绑定

    这个库需要每晚用 Rust 编译。 用法 use image :: open; use quicli :: prelude :: * ; use waifu2x :: Waifu2x; fn main () -> CliResult { let processer = Waifu2x :: new ( 0 , 0 , 2 , 128 , true ); let ...

Global site tag (gtag.js) - Google Analytics