mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-25 03:02:21 +00:00
edit function/tail call
This commit is contained in:
parent
aba2df6647
commit
afb572c243
@ -680,7 +680,7 @@ function f(x){
|
|||||||
|
|
||||||
// 情况二
|
// 情况二
|
||||||
function f(x){
|
function f(x){
|
||||||
return g(x)+1;
|
return g(x) + 1;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -690,7 +690,7 @@ function f(x){
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
function f(x) {
|
function f(x) {
|
||||||
if (x>0) {
|
if (x > 0) {
|
||||||
return m(x)
|
return m(x)
|
||||||
}
|
}
|
||||||
return n(x);
|
return n(x);
|
||||||
@ -711,7 +711,7 @@ function f(x) {
|
|||||||
function f(x) {
|
function f(x) {
|
||||||
let m = 1;
|
let m = 1;
|
||||||
let n = 2;
|
let n = 2;
|
||||||
return g(m+n);
|
return g(m + n);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 等同于
|
// 等同于
|
||||||
@ -736,7 +736,7 @@ g(3);
|
|||||||
```javascript
|
```javascript
|
||||||
function factorial(n) {
|
function factorial(n) {
|
||||||
if (n === 1) return 1;
|
if (n === 1) return 1;
|
||||||
return n * factorial(n-1);
|
return n * factorial(n - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
factorial(5) // 120
|
factorial(5) // 120
|
||||||
@ -749,7 +749,7 @@ factorial(5) // 120
|
|||||||
```javascript
|
```javascript
|
||||||
function factorial(n, total) {
|
function factorial(n, total) {
|
||||||
if (n === 1) return total;
|
if (n === 1) return total;
|
||||||
return factorial(n-1, n * total);
|
return factorial(n - 1, n * total);
|
||||||
}
|
}
|
||||||
|
|
||||||
factorial(5, 1) // 120
|
factorial(5, 1) // 120
|
||||||
@ -766,7 +766,7 @@ factorial(5, 1) // 120
|
|||||||
```javascript
|
```javascript
|
||||||
function tailFactorial(n, total) {
|
function tailFactorial(n, total) {
|
||||||
if (n === 1) return total;
|
if (n === 1) return total;
|
||||||
return tailFactorial(n-1, n * total);
|
return tailFactorial(n - 1, n * total);
|
||||||
}
|
}
|
||||||
|
|
||||||
function factorial(n) {
|
function factorial(n) {
|
||||||
@ -790,7 +790,7 @@ function currying(fn, n) {
|
|||||||
|
|
||||||
function tailFactorial(n, total) {
|
function tailFactorial(n, total) {
|
||||||
if (n === 1) return total;
|
if (n === 1) return total;
|
||||||
return tailFactorial(n-1, n * total);
|
return tailFactorial(n - 1, n * total);
|
||||||
}
|
}
|
||||||
|
|
||||||
const factorial = currying(tailFactorial, 1);
|
const factorial = currying(tailFactorial, 1);
|
||||||
@ -805,7 +805,7 @@ factorial(5) // 120
|
|||||||
```javascript
|
```javascript
|
||||||
function factorial(n, total = 1) {
|
function factorial(n, total = 1) {
|
||||||
if (n === 1) return total;
|
if (n === 1) return total;
|
||||||
return factorial(n-1, n * total);
|
return factorial(n - 1, n * total);
|
||||||
}
|
}
|
||||||
|
|
||||||
factorial(5) // 120
|
factorial(5) // 120
|
||||||
|
Loading…
x
Reference in New Issue
Block a user