본문 바로가기

람다

Kotlin더파기_04_Anonymous Function_익명함수 anonymous는 an(without; 없다)+onym(name; 이름)이 합쳐진 글자다. 즉, '이름이 없는(익명의)' 의 뜻이다. 함수에 이름이 없는 이유는 뭘까? 별로 중요하지 않기 때문? 아니다. 중요하고 쓰임새도 많다. Anonymous Function(익명함수) 익명함수는 말그대로 함수 이름 없이 다른 함수의 전달자 역할을 한다. '쌩초보 기초 12'에서 익명함수를 람다(lambda)라고 했었다. 코틀린의 표준 라이브러리(내장 함수 모음) 중 count()함수를 사용하여 테스트 해보자. 이 count함수는 문자열에서 호출하면 문자의 개수를 반환해 준다. 4번 라인은 문자열을 변수에 넣고 5번 라인에서 그 변수를 출력하는 코드이다. 7번 라인은 문자열의 개수를 변수에 넣고 8번 라인에서 그 변.. 더보기
쌩초보를 위한 기초_13_함수의 진화C Lambda functions (람다 함수) 와 Function Reference (함수 참조) 이번에는 고차함수를 구현하기 위해 사용하는 람다 표현과 함수 참조에 대해 살펴본다. main()함수 밖에 고차 함수를 하나 만들자. 함수명은 calculate(계산하다)로 한다. fun calculate(x: Int, y: Int, work: (Int, Int) -> Int): Int { } 매개변수는 3개 (x, y , work) 이다 매개변수 work의 타입(Type)이 람다함수로 되어있다. 그 모양은 Int타입 2개를 하나의 Int타입으로 만든다. 그 다음에 콜론( : )으로 구분한 후 뒤에 반환형(Return Type)이 표시되어 있다. 이제 고차함수 work가 들어오는 인자(argument)를 받아서.. 더보기
쌩초보를 위한 기초_12_함수의 진화B 함수형 프로그래밍(Functional Programming) 고차 함수(Higher-Order Function) 먼저 고차 함수를 설명하기 전에 함수형 프로그래밍에 대해 알아본다. 이전 글에서 코틀린은 객체 지향 프로그래밍 뿐만 아니라 함수형 프로그래밍을 추구한다고 했다. 함수형 프로그래밍의 목표는 같은 인자(argument)를 넣으면 항상 같은 결과를 반환하는 것이다. 한마디로 에러가 나지 않는 완전한 함수를 추구하는 것이다. 함수형 프로그래밍을 완성하기 위해서는 함수가 다른 객체들을 마음껏 통제할 수 있어야 하고 또한 함수를 어디에서나 활용할 수 있어야 진정한 함수형 프로그래밍을 구현할 수 있다. 함수를 매개변수로 사용할 수도 있고 함수를 통째로 반환(전달)할 수도 있고 변수에 함수를 넣을 수도 있어.. 더보기