File tree 3 files changed +54
-2
lines changed
solution/2600-2699/2632.Curry
3 files changed +54
-2
lines changed Original file line number Diff line number Diff line change @@ -85,7 +85,24 @@ curriedLife() === 42
85
85
<!-- 这里可写当前语言的特殊实现逻辑 -->
86
86
87
87
``` ts
88
-
88
+ function curry(fn : Function ): Function {
89
+ const n = fn .length ;
90
+ const allArgs: any [] = [];
91
+
92
+ return function curried(... args : any []) {
93
+ allArgs .push (... args );
94
+ if (allArgs .length < n ) {
95
+ return curried ;
96
+ }
97
+ return fn (... allArgs );
98
+ };
99
+ }
100
+
101
+ /**
102
+ * function sum(a, b) { return a + b; }
103
+ * const csum = curry(sum);
104
+ * csum(1)(2) // 3
105
+ */
89
106
```
90
107
91
108
### ** ...**
Original file line number Diff line number Diff line change @@ -77,7 +77,24 @@ curriedLife() === 42
77
77
### ** TypeScript**
78
78
79
79
``` ts
80
-
80
+ function curry(fn : Function ): Function {
81
+ const n = fn .length ;
82
+ const allArgs: any [] = [];
83
+
84
+ return function curried(... args : any []) {
85
+ allArgs .push (... args );
86
+ if (allArgs .length < n ) {
87
+ return curried ;
88
+ }
89
+ return fn (... allArgs );
90
+ };
91
+ }
92
+
93
+ /**
94
+ * function sum(a, b) { return a + b; }
95
+ * const csum = curry(sum);
96
+ * csum(1)(2) // 3
97
+ */
81
98
```
82
99
83
100
### ** ...**
Original file line number Diff line number Diff line change
1
+ function curry ( fn : Function ) : Function {
2
+ const n = fn . length ;
3
+ const allArgs : any [ ] = [ ] ;
4
+
5
+ return function curried ( ...args : any [ ] ) {
6
+ allArgs . push ( ...args ) ;
7
+ if ( allArgs . length < n ) {
8
+ return curried ;
9
+ }
10
+ return fn ( ...allArgs ) ;
11
+ } ;
12
+ }
13
+
14
+ /**
15
+ * function sum(a, b) { return a + b; }
16
+ * const csum = curry(sum);
17
+ * csum(1)(2) // 3
18
+ */
You can’t perform that action at this time.
0 commit comments