首页 > 编程语言 >ramda- 函数式编程库

ramda- 函数式编程库

时间:2022-12-23 16:55:07浏览次数:49  
标签:const 函数 age 编程 ramda false true id name

npm install ramda
import * as R from 'ramda'
R.and(true, true); //=> true
R.and(true, false); //=> false
R.and(false, true); //=> false
R.and(false, false); //=> false
R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']
R.append('tests', []); //=> ['tests']
R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]
const nums = [1, 2, 3, -99, 42, 6, 7];
R.apply(Math.max, nums); //=> 42
由返回值可与 < 和 > 比较的函数,创建一个升序比较函数
const byAge = R.ascend(R.prop('age'));
const people = [
  { name: 'Emma', age: 70 },
  { name: 'Peter', age: 78 },
  { name: 'Mikhail', age: 62 },
];
const peopleByYoungestFirst = R.sort(byAge, people);
  //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]
由首个参数是否小于第二个参数的判断函数,生成一个比较函数
const byAge = R.comparator((a, b) => a.age < b.age);
const people = [
  { name: 'Emma', age: 70 },
  { name: 'Peter', age: 78 },
  { name: 'Mikhail', age: 62 },
];
const peopleByIncreasingAge = R.sort(byAge, people);
  //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]
R.concat('ABC', 'DEF'); // 'ABCDEF'
R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]
R.concat([], []); //=> []
由返回值可与 < 和 > 比较的函数,创建一个降序比较函数。
const byAge = R.descend(R.prop('age'));
const people = [
  { name: 'Emma', age: 70 },
  { name: 'Peter', age: 78 },
  { name: 'Mikhail', age: 62 },
];
const peopleByOldestFirst = R.sort(byAge, people);
  //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]
求差集。求第一个列表中,未包含在第二个列表中的任一元素的集合。对象和数组比较数值相等,而非引用相等。
R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]
R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]
R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]
删除对象中指定 prop 属性。
R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}
两数相除。等价于 a / b
R.divide(71, 100); //=> 0.71

const half = R.divide(R.__, 2);
half(42); //=> 21

const reciprocal = R.divide(1);
reciprocal(4);   //=> 0.25
R.includes(3, [1, 2, 3]); //=> true
R.includes(4, [1, 2, 3]); //=> false
R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true
R.includes([42], [[42]]); //=> true
R.includes('ba', 'banana'); //=>true
R.indexOf(3, [1,2,3,4]); //=> 2
R.indexOf(10, [1,2,3,4]); //=> -1
R.innerJoin(
  (record, id) => record.id === id,
  [{id: 824, name: 'Richie Furay'},
   {id: 956, name: 'Dewey Martin'},
   {id: 313, name: 'Bruce Palmer'},
   {id: 456, name: 'Stephen Stills'},
   {id: 177, name: 'Neil Young'}],
  [177, 456, 999]
);
//=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]

 

标签:const,函数,age,编程,ramda,false,true,id,name
From: https://www.cnblogs.com/peipeiyu/p/17001063.html

相关文章

  • tcp编程
    面试官:描述一下TCP的编程流程?答:TCP服务器端编程的一般步骤是:TCP客户端编程的一般步骤是:1.创建一个socket,用函数socket();......
  • Oracle函数汇总
      SQL函数日期函数:可以进行算术运算 SYSDATE返回系统日期selectsysdatefromdual;ADD_MONTHS(<d>,<i>)返回日期d加上i个月后的新日期(i正可负)。......
  • 关于gets函数和scanf函数
    关于gets函数和scanf函数,都会在末尾上加‘\0’的,要不然字符串就无法结束了。他们的不同在于,scanf在碰到缓冲区的空字符时(TAB,空格,换行,回车)时会自动截断并添加0.而gets函......
  • Bash自定义函数numbeep:Cygwin、Mintty窗口重复响铃并闪烁以提示新信息
    概述:有时候会碰到这样的场景,在Cygwin或MSYS2环境下工作,执行一个耗时较长的任务(eg:gcc编译、rsync同步等等...),我们不想长时间保持窗口激活状态在前台苦等任务运行结束,窗口切......
  • Shell编程 第 6~11 章
    Shell编程第6~11章第6章流程控制(重点)、第6章流程控制(重点)6.1if判断语法(1)单分支if[条件判断式];then程序fi或者if[条件判断式]then程序fi......
  • Shell编程 第 1~5章
    Shell编程第1~5章第1章Shell概述、第2章Shell脚本入门、第3章变量、第4章运算符、第5章条件判断第1章Shell概述什么是Shell在计算机科学中,Sh......
  • 03_Java筑基之Java编程基础
    03_Java筑基之Java编程基础我们是学习软件开发的,必然离不开计算机,所以在进行学习之前,首先要了解一些必要的计算机基础知识.一.计算机基础1.......
  • pandas数组用法Series、DataFrame二维框架、逻辑判断query、~翻转、高阶函数iloc和loc
    importpandasaspd#生成数组print(pd.Series([1,2,3,4]))print("1,------------")#查看索引信息print(pd.Series([1,2,3,4]).index)print("2,----------")#有定......
  • 【操作系统---并发编程】CPU cache结构和缓存一致性(MESI协议)
    转载自:https://blog.csdn.net/reliveIT/article/details/50450136?spm=1001.2014.3001.5506(三人行,必有我师) 一、cachecpucache已经发展到了三级缓存结构,基本上现在......
  • 搭建"积木"=编程?
    如果你不用写一行代码就能构建软件会怎么样呢?而这就是无代码开发背后的前提,这种软件开发方法的势头在我们国内发展的越来越大。在无代码平台的帮助下,无需编写任何底层代码就......