Motivation
Functor solves the problem of mapping regular one-parameter functions into a sub-category, but that's not easy for functions with more than one parameters.
Let's consider a function with two parameters f :: a -> b -> c, which can also read as a -> (b -> c). Applying fmap on f, we will get fmap f :: m a ->
继续阅读 »
content
{:toc}
本文为慕课网 JavaScript深入浅出 JavaScript 中的闭包笔记。
闭包的例子
function outer() {
var localVal = 30;
return localVal;
}
继续阅读 »
概述
Server-sent Events 简称 SSE。服务器端通过 HTTP 或者专用的特定协议推送数据到 Web 页面。
创建
用 EventSource 的创建对象,并注册一个事件侦听器。
var source = new EventSource('updates.cgi');
source.onmessage = function (event) {
alert(event.data);
};
继续阅读 »
There is a hash table:
It has b buckets.
It has n keys stored in it.
We assume that the hash function distributes keys uniformly.
A bucket can contain more than 1 keys.
继续阅读 »
昨天在看一个拖拽库的时候,遇到了这么一段代码,感觉很有意思:
```jsx
@sortable
class DemoHOCItem extends React.Component {
render() {
return (
{ this.props.children }
);
}
}
```
查了一下之后发现这是 es7 的新语法,叫 Decorator。
语法
如果要定义一个 Decorator 的话,不难,其实每一个 decorator 就是一个 function,有三个参数,像这样
```js
let log = (target, name, de
继续阅读 »
```
module.exports = function(config) {
var globSync = require("glob").sync;
var files = globSync('newifi/@(jquery*|newifi).js', { cwd: 'web/htdocs' });
var otherJsFiles = globSync('newifi//!(jquery*|newifi|angular*|bootstrap|echarts*).{js,json}', { cwd: 'web/htdocs' });
var cssFiles = globSync('newifi/
继续阅读 »
链接:Link 耗时: 0.012s
前言
真是疯玩了几天,脑袋都残了,一道弱智题做了近一个小时。
Code
var
pre, mid, s: string;
tree: array [1..50] of record
l, r: integer;
ch: char;
end;
cur: integer;
function init: integer;
var
m: integer;
begin
readln(s);
m := length(s) >> 1 + 1;
pre := Copy(s, 1, m-1);
mid
继续阅读 »
使用Token来做身份认证在目前的移动客户端上非常流行,Token这个概念来源于OAuth认证,主要是在服务端实现。关于相关的原理,同学们自行百度。在这里,我简单介绍一下我是怎么具体实现的,重点描述token生成、token识别及token缓存。
生成Token
服务端接收客户端传递的username和password等请求,在数据库中检查,如果用户名密码匹配的话,表示登录成功,服务端生成并返回一个token访问令牌。
```php
public function login()
{
$data = array_merge($this->request->post(), []);
//
继续阅读 »
链接:Link 状态:WA
分析
做了两个小时,很可惜最终还是WA了。非常奇怪——和网上的C++代码运行结果完全一样,但却WA了。不过,在这里我还是记录一下解题的过程。
这道题数据量很小,直接爆搜每个空位,用*, +, -, #0来代表符号或不填。
Code
const
operators: array [1..4] of char = ('*', '+', '-', #0); //符号
var
s: string;
_, n: integer;
op: array [0..10] of char;
yes: Boolean;
function toValue(ch: char):
继续阅读 »
一般情况下,textarea 的高度是定死的,rows 指定了之后,高度就不变了,内容多了之后会出现滚动条,这样的设定在大部分的场景下面是够用的, 但是有时就会很丑陋(废话😊)。
我们都知道 HTML 的元素都有一个 scrollHeight 这个属性,就是当该元素出现滚动条的时候,内容的高度。
那就方便了:
js
$(".weui-textarea").on('input propertychange keyup',function () {
$(this).height(this.scrollHeight);
});
这样就实现了高度自动增加的 Textarea,但当我试着删掉几行,想让它自动降低高度的时候不禁菊花
继续阅读 »