fn

[Functional Programming] 1. Function modelling -- Combine functions

≡放荡痞女 提交于 2020-03-13 05:17:01
Let's say we have two fucntions: const toUpper = s => s.toUpperCase(); const exclaim = s => `${s}!`; We want to combine those. But function itself doesn't give us method to combine tow functions. Therefore we can create a Monoid to combine function: const Fn = run => ({ run, concat(otherFn) { } }) So 'Fn' take a 'run' function as arguement and because we want to combine different function, we need to implement the interface for monoid 'concat'. Inside 'concat' function, first, it should return 'Fn', so that we can compose later. const Fn = run => ({ run, concat(otherFn) { return Fn() } })

zepto源码研究 - callback.js

你离开我真会死。 提交于 2020-03-13 00:45:19
简要: $.Callbacks是一个生成回调管家Callback的工厂,Callback提供一系列方法来管理一个回调列表($.Callbacks的一个私有变量list),包括添加回调函数, 删除回调函数等等...,话不多说看正文: var memory, // Last fire value (for non-forgettable lists) fired, // Flag to know if list was already fired //是否回调过 firing, // Flag to know if list is currently firing //回调函数列表是否正在执行中 firingStart, // First callback to fire (used internally by add and fireWith) //第一回调函数的下标,启动回调任务的开始位置 firingLength, // End of the loop when firing //回调函数列表长度? firingIndex, // Index of currently firing callback (modified by remove if needed),正在执行回调函数的索引 list = [], // Actual callback list //回调数据源: 回调列表

理解jquery的$.extend()、$.fn和$.fn.extend()

左心房为你撑大大i 提交于 2020-03-12 07:29:10
原文链接: http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html jQuery 为开发插件提拱了两个方法,分别是: · jQuery .fn.extend(); jQuery .extend(); jQuery.fn jQuery.fn = jQuery.prototype = {    init: function( selector, context ) {//…. //…… }; 原文链接: http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html 原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。 · 虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。 jQuery便是一个封装得非常好的类,比如我们用 语句 $(“#btn1″) 会生成一个 jQuery类的实例。 jQuery.extend(object) 为jQuery类添加类方法,可以理解为添加静态方法。如: jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a

蓝桥杯 入门训练 Fibonacci数列 C语言

梦想与她 提交于 2020-03-11 01:07:27
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 样例输入 10 样例输出 55 样例输入 22 样例输出 7704 数据规模与约定 1 <= n <= 1,000,000。 自己写的,但是不对只有30分 # include <stdio.h> int main ( ) { int n = 1 ; int f1 = 1 , f2 = 1 , F = 1 ; int a = 0 ; int i = 1 ; scanf ( "%d" , & n ) ; if ( n > 0 && n <= 1000000 ) { if ( n == 1 && n == 2 ) F = 1 ; for ( i = 2 ; i < n ; i ++ ) { F = f2 + f1 ; f1 = f2 ; f2 = F ; } a = F %

Node.js 函数

送分小仙女□ 提交于 2020-03-10 16:36:58
一个函数可以作为另一个函数的参数 function fn1(fn,arg){ fn(arg); } function name(n){ console.log("i am "+n); } fn1(name,"cyy"); 使用匿名函数 function fn1(fn,arg){ fn(arg); } fn1(function(n){ console.log("i am "+n); },"cyy2"); HTTP服务器实例: var http=require("http"); http.createServer(function(request,response){ response.writeHead(200,{"Content-Type":"text/plain"}); response.write("hello http~"); response.end(); }).listen(8888); 来源: https://www.cnblogs.com/chenyingying0/p/12456321.html

Fibonacci

ぃ、小莉子 提交于 2020-03-10 08:30:08
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多> 少。 提示 在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 坑 1.注意n=1和n=2的两种情况 2.不按提示则要超时 正确代码 def fei(n): if n==1 or n==2: return 1 f1=1;f2=1 for i in range(3,n+1): f3=(f2+f1)%10007 f2,f1=f3,f2; return f3 print(fei(int(input()))) 来源: https://www.cnblogs.com/thgpddl/p/12453615.html

短路与(&&)、短路或(||)

元气小坏坏 提交于 2020-03-09 04:11:16
昨晚上课,老师用了类似这样的语法 fn&&fn.call(obj) fn&&fn.call(obj) 这里的fn为回调函数.老师在课上也没过多解释这句是啥意思,然后我自己百度了下,这种写法其实是if语句的简写形式:if(fn){ fn.call(obj);} 若fn为null或者undefined 即为false,就不执行fn.call(obj) ,若fn存在,就执行回调函数. 顺便介绍下 短路与(&&)、短路或(||) 举例:A&&B A||B 1.&& 若首项A为false,则当前表达式即为false,不再执行B表达式 2.|| 若首项A为true,则当前表达式即为true,不再执行B表达式 ps:第一次写博,多多指教~ 来源: https://www.cnblogs.com/slikes/p/8566588.html

php批量修改文件名称

那年仲夏 提交于 2020-03-08 16:09:57
<?php//利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称function fRename($dirname){ if(!is_dir($dirname)){ echo "{$dirname}不是一个有效的目录!"; exit(); } $handle = opendir($dirname); while(($fn = readdir($handle))!==false){ if($fn!='.'&&$fn!='..'){ $curDir = $dirname.'/'.$fn;// var_dump($curDir);die; if(is_dir($curDir)){ fRename($curDir); } else{ $path = pathinfo($curDir); if($path['extension'] == 'wma'){ $newname = $path['dirname'].'/'.rand(0,1000).'.'.'mp3'; rename($curDir,$newname); } echo $curDir.'---'.$newname."<br>"; } } }}//给出一个目录名称调用函数fRename('F:/CloudMusic/'); 来源: https://www.cnblogs.com/ZxyPhppython/p

小程序点击 -- 节流

浪尽此生 提交于 2020-03-06 18:11:00
function throttle(fn, gapTime) { // if (gapTime == null || gapTime == undefined) { gapTime = 1500 } let _lastTime = null return function () { let _nowTime = + new Date() if (_nowTime - _lastTime > gapTime || !_lastTime) { // 将this和参数传给原函数 fn.apply(this, arguments) _lastTime = _nowTime } } } 来源: https://www.cnblogs.com/slightFly/p/12427767.html

装饰器理解这篇博客看完你就懂了

这一生的挚爱 提交于 2020-03-04 18:42:11
定义(如何理解装饰器):装饰器本生是闭包函数的一种应用,是指在不改变原函数的情况下为原函数添加新的功能的一个函数。它把被装饰的函数作为外层函数的参数传入装饰器,通过闭包操作后返回一个替代版函数。 遵循的原则: 开放封闭原则------在不改变调用方式和源代码的情况下,增加新功能。 不能改变被修饰对象(函数(后面还会对类进行装饰))的源代码(封闭) 不能改变被修饰对象(函数(以后还会对类进行装饰))的调用方式,且能达到增加功能的效果。(开放) 优点: 丰富了原函数的功能 提高了程序的可拓展性 装饰器的简单实现: # 无参装饰器公式: def fn(): print('原功能') def outer(fn): def inner(): print('新功能1') fn() print('新功能2') return inner fn = outer(fn1) print(fn()) """ 案例分析: 定义一个打印插花的函数,为其前面添加绘画功能,后面添加观赏功能。 如何一步一步完成完整的装饰器函数。 """ def vase(): print('插花') def wrap(): tag = vase # 此时的vase 是在wrap()还没有运行结束的时候,wrap没有返回值,所以tag被赋值的是vase原先的值。 def outer(): print('绘画') tag() #