<?php /** * 无重复排列組合 * @Author MAX * @DateTime 2018-09-07T16:28:40+0800 * @param Array $arr 需要排列組合的数组 * @param Number $m 每几个一組 * @param [Array] $push 添加到数组里 * @return Array 組合好的数组 */ function getCombinationToString($arr, $m, $push=null) { $rst = array…
大家是不是看我上篇博文有点蒙.用的的curry和compose是什么鬼,怎么那么神奇.上篇博文也是主要用到了这两个函数.那今天我们来聊一下curry和compose,这两个东西是函数式编程很重要的东西,基本每个稍微复杂点的例子都要涉及这两个函数.什么是curry呢?---函数柯里化.就是这个东西了.举一个简单的例子. var _console=curry(function(x){ console.log(x); }) _console("hello"); //hello 其实就这个作用…
在统计查询中,经常会用到count函数,这里是基础的 MYSQL 行转列 以及基本的聚合函数count,与group by 以及distinct组合使用 -- 创建表 CREATE TABLE `tb_student` ( `id` ) NOT NULL, `stu_name` ) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '学生姓名', `tea_name` ) DEFAULT NULL COMMENT '教师姓名', `stu_class` ) D…
1.组合函数即由若干个函数组合成一个新的函数,同时完成数据的传递 1>最简单版本 这种方法实现的组合函数,需要我们指定函数的执行顺序 /**第一种方法 */ function add(a, b) { return a + b; } function square(a) { return a * a; } function compose(fn1, fn2) { return (...args) => fn1(fn2(...args)); } console.log(compose(square…
oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in (select deptno from emp where ename='SCOTT'); --查找不在销售部和财务部工作的雇员编号.姓名和部门编号. select empno,ename,deptno from emp where deptno not in (select deptno from dept…
结构体定义 上面我们说过Go的指针和C的不同,结构体也是一样的.Go是一门删繁就简的语言,一切令人困惑的特性都必须去掉. 简单来讲,Go提供的结构体就是把使用各种数据类型定义的不同变量组合起来的高级数据类型.闲话不多说,看例子: type Rect struct { width float64 length float64 } 上面我们定义了一个矩形结构体,首先是关键是type表示要定义一个新的数据类型了,然后是新的数据类型名称Rect,最后是struct关键字,表示这个高级数据类型是结构体类型…
JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 函数式编程(Functional Programming),又称为泛函编程,是一种编程范式.早在很久以前就提出了函数式编程这个概念了,而后面一直长期被面向对象编程所统治着,最近几年函数式编程又回到了大家的视野中,JavaScript是一门以函数为第一公民的语言,必定是支持这一种编程范式的,下面就来谈谈JavaScript函数式编程中的核心概念纯函数.柯里化以及组合函数. 1.纯函数 1.1.纯函数的概念 对于纯函数的定义,维基百…
JS前端无侵入实现防止重复提交请求技术 最近在代码发布测试的过程中,我发现有些请求非常的消耗服务器资源,而系统测试人员因为响应太慢而不停的点击请求.我是很看不惯系统存在不顺眼的问题,做事喜欢精益求精,也很喜欢和别人争论技术,有时候硬要争得你死我活. 实在看不下去系统存在这个问题,下定决心好好整改一波,我们系统几乎都是使用Ajax技术发请求,使用的是针对我们系统特点对jQuery的post方法进行了封装的newpost方法,这个方法扩展了异常响应,登陆超时,token验证,加载时渲染等自动完成功能…
用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: , , , , , , , ]; var getRepeat = function (arr) { var obj = {}; , len = arr.length; i < len; i++) { if (obj[arr[i]] == undefined) { obj[arr[i]] = ; } else { obj[arr[i]]++; } } for (var key in obj) { obj[key] <= &&…
1,位图法介绍 位图的基本概念是用一个位(bit)来标记某个数据的存放状态,由于采用了位为单位来存放数据,所以节省了大量的空间.举个具体的例子,在Java中一般一个int数字要占用32位,如果能用一位就表示这个数,就可以缩减大量的存储空间.一般把这种方法称为位图法,即Bitmap. 位图法比较适合于判断是否存在这样的问题,元素的状态比较少,元素的个数比较多的情况之下.那么具体咋么做呢,这样,非常简单明了就是,2.5亿个整数里面,我维护一个长度等于最大整数值得字符串,每个整数是否存在我就在该整数对…