함수형프로그래밍.pptx

함수형프로그래밍.pptx

This preview shows page 1 - 11 out of 39 pages.

Functional programmi ng
Image of page 1

Subscribe to view the full document.

2 사이트 이펙트를 조합성을 강조하는 프로그래밍 => 모듈화 수준을 높임 순수 함수 => 오류를 줄이고 , 안정성을 높인다 모듈화 수준이 높다 => 재사용성 , 기획변경력 , 생산성을 높 인다
Image of page 2
3 01_ 함수 프로그래밍의 개 Functional programming is programming without as- signment statements. 명령형 프로그래밍 함수는 프로그램의 상태의 값을 바꿀 수 있는 부작용이 발생하며 , 이 때문에 참조 투명성이 없고 , 같은 코드라도 실행되는 프로그램의 상태 따라 다른 결과값을 낼 수 있음 함수형 프로그래밍 함수의 출력값은 그 함수에 입력된 인수에만 의존하므로 인수 x 에 같은 값 넣고 함수 f 를 호출하면 항상 f(x) 라는 결과가 나옴 , 메모리 할당할 때를 제외하고는 할당된 메모리 데이터가 변경되지 않 것이 충족된다면 , 함수를 몇 번이고 호출하더라도 항상 동일한 결과를 갖게
Image of page 3

Subscribe to view the full document.

4 01_ 함수 프로그래밍의 개 Pure function( 순수한 함 ) 부작용 (side-effect) 이 없는 y = f(x) * f(x); z = f(x); y = z * z => f(x) 를 계산하는 과정이 두 번에서 한 번으로 줄어들지만 두 코드의 결과는 항상 같음 y = random() * random(); z = random(); y = z * z => random() 함수를 호출할 때 마다 결과가 달라 질 수 있음 . 부작용을 발생시키는 함
Image of page 4
순수함 function add(a, b) { return a + b; } add(10, 5); //15 add(10, 5); //15 - 동일한 입력값에 의해 동일한 결과 값이 출력됨 - side-effect 가 발생하지 않음 - 다른 함수의 인자로 사용하더라도 문제가 생기지 않음 . 안정성이 높 var c= 10; function add2(a, b) { return a + b + c; } 5 //22 //23 add2(10, 2); add2(10, 3); c= 20; add2(10, 2); add2(10, 3); //32 //33 - 동일한 입력값에 의해 다른 결과 값이 출력됨 - 평가시점에 따라 값이 달라짐
Image of page 5

Subscribe to view the full document.

순수함 var c= 20; function add3(a, b) { c = b; return a + b; } console.log(c ); //20 add3(20, 30);//50 console.log(c ); //30 - side-effect 가 발생하지 않음 //10 6 var obj1 = { var: 10 } function add4(obj, b) { obj.var += b; } console.log(obj1.var); add4(obj1, 20); con- sole.log(obj1.var); //30 - 외부 상태에 영향을 미치는 함수
Image of page 6
7 순수함 var obj1 = { var: 10 } function add5(obj, b) { return { val: obj.val + b } } console.log(obj1.var); //10 var obj2 = add5(obj1, 20); console.log(obj1.var); //10 console.log(obj2.var) //30 - 외부 값 , 인자 값을 변화시키지 않고 프로그래밍 하는 함수
Image of page 7

Subscribe to view the full document.

일급함 함수를 값으로 다를 수 있음 변수에 할당 , 다른 함수의 인자로 사용 가능한 함 함수의 조합성을 높임 var f1 = function(a) { return a * a; }; Var f2= add; function f3(f) { return f(); 8 } console.log( f3(function() { return 10; } ) ); // 10 console.log( f3(function() { return 20; } ) ); // 20
Image of page 8
9 function add_m aker ( a ){ return function ( b ){ return a + b ; } } var add10 = add_m aker( 10 ); console.log(add10( 20 ));//30
Image of page 9

Subscribe to view the full document.

01_ 함수 프로그래밍의 개 함수 프로그래밍 수학 함수와 같은 원리의 함수들로 프로그램을 구성하는 기법
Image of page 10
Image of page 11
  • Fall '16
  • Lee
  • defi ne, 수학, 함수, 입력, 입출력, 원주율

{[ snackBarMessage ]}

Get FREE access by uploading your study materials

Upload your study materials now and get free access to over 25 million documents.

Upload now for FREE access Or pay now for instant access
Christopher Reinemann
"Before using Course Hero my grade was at 78%. By the end of the semester my grade was at 90%. I could not have done it without all the class material I found."
— Christopher R., University of Rhode Island '15, Course Hero Intern

Ask a question for free

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern