목록커링 (2)
초보개발자 긍.응.성
스칼라는 객체지향과 함수형 프로그래밍을 혼합한 언어다. 스칼라 또한 JVM에서 실행되며 자바에 비해 더 다양하고 심화된 함수형 기능을 제공한다. 스칼라와 자바에 적용된 함수형의 기능을 살펴보면서 자바의 한계가 무엇인지 확인해보자. 들어가며 투어를 환영합니다 이 투어에서는 스칼라에서 가장 자주 사용되는 기능을 요약하여 소개하며, 스칼라 초보자를 대상으로 합니다. 언어 전체를 다루는 튜토리얼이 아닌 간단히 둘러보기입니다. docs.scala-lang.org 함수 스칼라의 함수는 어떤 작업을 수행하는 일련의 명령어 그룹이다. 스칼라의 함수는 일급값이다. def isJavaMentioned(tweet: String) : Boolen = tweet.contains("Java") def isShortTweet(tw..
이번 장에서는 고급적인 함수형 프로그래밍 기법을 소개한다. 고차원 함수(higher-order functions) 함수를 인수로 받아서 다른 함수로 반환하는 정적 메서드를 고차 함수라고 부른다. 고차원 함수를 적용할 때 어떤 인수가 전달될지 알 수 없으므로 인수가 부작용을 포함할 가능성을 염두에 두어야 한다. 따라서 인수로 전달된 함수가 어떤 부작용을 포함하게 될지 정확하게 문서화하는 것이 좋다. 커링(currying) 커링은 x와 y라는 두 인수를 받는 함수 f를 한개의 인수를 받는 g라는 함수로 대체하는 기법이다. 이때 g라는 함수 역기 하나의 인수를 받는 함수를 반환한다. 이때 함수 g의 상태는 여러 과정이 끝나지 않은 상태를 가리켜 '함수가 부분적으로(partially) 적용되었다'라고 말한다. ..