添加函数
diff --git a/lib/curry.js b/lib/curry.js
index 74a5c80..27fdf53 100644
--- a/lib/curry.js
+++ b/lib/curry.js
@@ -1,16 +1,11 @@
/**
- * implement for Currying and Partial Application
- *
+ * implement for Currying
* Currying: https://en.wikipedia.org/wiki/Curryin
- * usage: process(x, y, z) => curry(process)(x)(y)(z)
+ * 柯里化是将一个多参数函数转换成多个单参数函数
+ * 也就是将一个 n 元函数转换成 n 个一元函数
*
- * Partial Application: https://en.wikipedia.org/wiki/Partial_application
- * usage: process(x, y, z) => curry(process)(x)(y)(z)
- * process(x, y, z) => curry(process)(x, y)(z)
- * process(x, y, z) => curry(process)(x)(y, z)
- *
- * @params {function} fn 需要被柯里化或部分施用的函数
- * @return {function} fn 已经被柯里化或部分施用的函数
+ * @params {function} fn 需要被柯里化的函数
+ * @return {function} fn 已经被柯里化的函数
* /
export function curry(fn) {
let slice = Array.prototype.slice;
diff --git a/lib/partial.js b/lib/partial.js
new file mode 100644
index 0000000..4ac6bbd
--- /dev/null
+++ b/lib/partial.js
@@ -0,0 +1,18 @@
+/**
+ * implement for Partial Application
+ * Partial Application: https://en.wikipedia.org/wiki/Partial_application
+ * 局部施用则是固定一个函数的一个或者多个参数
+ * 也就是将一个 n 元函数转换成一个 n - x 元函数
+ *
+ * @params {function} fn 需要被部分施用的函数
+ * @params {any} arg 需要被固定的函数参数
+ * @return {function} fn 已经被部分施用的函数
+ * /
+export function partial(fn) {
+ let slice = Array.prototype.slice;
+ let args = slice.call(arguments, 1);
+
+ return function() {
+ return fn.apply(this, args.concat(slice.call(arguments)))
+ }
+}