초보자를 위한 함수식 프로그래밍
                                            
                                                
                                                
                                                
                                                
                                                
                                                 10274 단어  functionaltypescriptjavascriptnode
                    
기능
함수는 오늘날 우리가 사용하는 대부분의 프로그래밍 언어의 핵심으로, 다시 사용할 수 있는 모든 코드 블록을 격리하는 방식이다.함수도 일부 프로그래밍 과정이나 작업을 저장할 수 있습니다. 기본적으로 이 함수에서 실제로 어떤 내용도 되돌려주지 않으면 함수는 빈 값을 되돌려줍니다.함수식 프로그래밍의 세계에는 두 가지 유형의 함수가 있다.순함수와 비순함수.
순함수
순수 함수는 코드 내부 상태를 바꾸지 않는 함수다.순수 함수는 그 작용역 밖에서 성명된 값을 바꾸거나 변이하지 않으며, 내부 논리는 이런 값에 의존하지 않는다.그것은 그것에게 전달되는 매개 변수에만 관심을 갖는다.순수 함수의 한 가지는 입력이 같으면 같은 출력을 되돌려야 한다는 것이다.
const add = (a:number, b:number):number => a + b; // PURE FUNCTION
add(2, 3) // 5
const addRand = (a:number) => {
    const rand = Math.random();
    return rand + a;
} // IMPURE FUNCTION
addRand 는 순수한 함수가 아니다. 같은 입력을 주면 같은 출력을 되돌려주지 않기 때문이다.무작위 수를 바탕으로 계산하는 모든 함수는 순수 함수가 아니다.그러나 우리는 입력5과 2만 하면 첫 번째 함수는 항상 같은 출력3을 되돌려준다.순수함수는 함수 프로그래밍의 핵심으로 테스트와 디버깅이 쉬우며 전역 범위 내의 어떤 것도 영향을 주지 않는다. 우리는 순수함수를 서로 위에 쌓아 더욱 높은 함수를 만들 수 있다.const add = (a:number, b:number):number => a + b; // PURE FUNCTION
const square = (a:number):number => Math.pow(a, 2); // PURE FUNCTION
const addAndSquare = add(square(2), square(3)) 
console.log(addAndSquare) // 13tt
const makeNumString = num => num2 => num + num2.toString();//
const num = makeNumString(2)
console.log(num(1)) // '3'
불순 기능 및 부작용
우리는 이미 순수 함수의 개념을 이해했고 함수 프로그래밍은 코드에서 순수 함수를 사용하는 기초 위에서 세워진 것이다.불순함수, 불순함수와 순함수가 정반대인 것을 봅시다.그것들은
Side Effects를 초래하는 함수이다. 불순함수와 부작용이 완전히 나쁜 것은 아니다. 우리는 매일 코드에서 많은 부작용을 초래하는 불순함수를 대량으로 사용한다.부작용은 기능이 불순한 결과다.그 범위 내에서 성명되지 않은 변수를 바꾸는 함수는 불순 함수다.불순함수로 인해 변수를 바꾸는 결과는 부작용이다.더욱 광범위한 의미에서 부작용은 불순함수로 인한 응용 프로그램 상태의 변화를 묘사할 수 있다.또 다른 불순함수의 예를 봅시다.const state = { name: 'Job', likes: 'hardship' };
// IMPURE FUNCTION
const impureFunc = (obj) => {
    sate.name = 'Dan';
    return Obj
}
// ANOTHER IMPURE FUNCTION
const impureFunc2 = (obj) => {
    const obj.field = 'value'
    return obj
}
// ANOTHER IMPURE FUNCTION
const impureFunc3 = obj => console.log(obj)
// Reverse the array
const reverseArr = arr => arr.reverse() // Reverses an array
const getRandElement = arr => arr[Math.random() * arr.length]; // Picks a random element from an array
const arr = [1, 2, 4, 8, 9, 10, 21];
const randElement = getRandElement(reverseArr(arr))
console.log(randElement) // logs out a random element
Reference
이 문제에 관하여(초보자를 위한 함수식 프로그래밍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kalashin1/functional-programming-3555텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)