Scala에서 Parital Application

Posted 2008. 4. 19. 20:34
scala.user 메일링 리스트에 partial application에 대한 질문이 올라왔군요.

def m(a: Int, b: Int, c: Int) = a + b + c


와 같이 함수 m을 정의한 후에 a와 c의 값을 정해주고 b만 인자로 받는 새로운 함수를 만들어내는 문제입니다.

Scala에서 이 문제에 대한 해답은

scala> def m(a: Int, b: Int, c:Int) = a+b+c
m: (Int,Int,Int)Int

scala> val f=m(1, _:Int, 3)
f: (Int) => Int = <function>

scala> f(2)
res0: Int = 6


Scala에서 _ 는 partial evaluation을 하도록 만들어 줍니다.

참고: partial application과 비슷한 용어로 커링(curring)은 (A, B) => C를 A => (B => C)로 만들어 주는 방법을 말합니다. parital application과 커링은 구분해서 사용해야 합니다. LtU의 Currying != Generalized Partial Application?! 을 참조하세요.

Scala

Posted 2008. 4. 19. 17:09
5월 마소에 Scala 프로그래밍 언어를 소개합니다. Scala는 객제+함수언어를 지향하며 자방 가상 머신(JVM) 위에서 돌아가는 언어입니다. 얼마 전에 블로그에서 한 번 소개를 한 적이 있었습니다.

사실 기본적인 문법 및 HelloWorld 스타일의 예제만 소개만 해서는 어떤 언어나 비슷하기 때문에 Scala의 여러 특징 중에 어떤 점을 부각해서 글을 작성할지 고민을 했습니다. 일단 머리 속에 떠오른 몇 가지 아이디어는 다음과 같았습니다.

1) 자바 플랫폼 언어
 * 기존 라이브러리와의 통합
 * 컴포넌트 활용

2) 함수형 언어
 * 함수 언어의 장점
 * 함수 언어와 객체지향 언어와의 통합

3) 병렬 프로그래밍
 * Actor 모델
 * 다양한 병렬 프로그래밍 도구


자세한 내용은 5월 호에^^;

영어 개발 환경

Posted 2008. 4. 16. 12:34
까멜레어를 오픈소스화한 이후에 까멜레오 개발팀은 까멜레오 관련 모든 논의와 토론을 메일링 리스트트랙을 통해 하고 있습니다. 아직 시작은 미약하지만 영어 사용권 개발자들을 무시할 수 없기 때문에 모든 준비는 영어로 하는 것을 원칙으로 정했습니다. 따라서 오픈소스하기 몇 달 전부터 트랙의 티켓은 모두 영어 작성해 왔습니다.

사실 한국 사람들만으로 구성된 개발팀에서 지속적으로 영어를 사용해 커뮤니케이션하는 일이 처음에는 쉽지 않았습니다. 프로젝트 초기 셋업 때 영어로 작성을 하다가 중간에 한 번 효율성을 문제로 한글로 복귀한 적도 있었습니다. 오픈소스 논의가 본격화되면서 다시 영어로 돌아가기는 했지만요.

처음 영어로 전화했을 때 가장 큰 문제점은 한글로는 더 자세히 적었을 버그 정황 설명을 영어로는 1-2줄에 다 축약해 버린다는 점이었습니다. 뭔가 부족하다고 느끼면서도 어떻게 표현할지 몰라서 막연히 전달되리라 생각해 버리는 것이죠.

지금은 영어로 개발 관련 의사소통을 하는 일이 어느 정도는 자연스러운 문화로 정착이 되었습니다. 물론 이런 습관은 수십 개의 오픈 소스 프로젝트 메일링 리스트에서 원하는 질문을 하고 답변을 받고, 의견을 제시해야 하는 오픈소스 개발자에게 반드시 필요한 자질이라고 생각됩니다.

대기업에서는 영어 사용에 대한 기사가 많이 나오던데, 개발팀의 주소통 언어로 영어를 사용하는 또 다른 예가 있으면 알려주세요.

« PREV : 1 : ··· : 9 : 10 : 11 : 12 : 13 : 14 : 15 : ··· : 82 : NEXT »