LangDev

잡담. 코드 로제타석.

홍민희

랑데부 개장 이래 가장 심각한 정전(;;)을 보고 있다니 마음이 아파서 뻘글이라도 하나...;

rosetta.langdev.net이라는 주소로 프로그래밍 언어별 코드 로제타석을 만들면 재밌을 것 같아요. 같은 문제에 대한 서로 다른 언어의 풀이를 정리하는 거죠. 얼마 전에 론칭한 Google App Engine 같은 것을 써서 만들면 재밌을 것 같습니다. 어떻게들 생각하세욤?

코드골프도 좋을지도요. 가능한 one-liner-_-;;; esoteric하게;;; 농담이고 코드골프인데 다음과 같이 배점을 하면 어떨까요

  • 라인수(기본적이죠?)
  • 실행시간, 각종자원점유율등
  • 회원들의 투표
아겔-_-

코드 골프와는 약간 다른 의미였는뎅...; 해당 언어의 관용구들을 온몸으로 느낄 수 있게(!;) 하자는 취지죠.

홍민희

ㄷㄷㄷ;;; 온몸으로라면... ㅎㅇㅎㅇ...

아겔-_-

음..화장품이?;; 코드 로제타석을 만든다는게 어떤 의미인진 모르겠지만;; 재밋을것같은데요?

rapzzard

예를 들면 "재귀적으로 팩토리얼 구하기"에 대해 Haskell은

factorial 1 = 1
factorial n = n * factorial (n - 1)

가 되겠고, Python은

def factorial n:
    return n * factorial(n - 1) if n > 1 else 1

가 되겠죠. 게다가 다른 풀이도 있을 수 있겠고요. 언어도 무척 다양합니다. 이런 식으로 비교 가능한 코드들을 묶어서 보여주는 사이트를 생각해본 거예요.

홍민희

작업 고고싱?

아겔-_-

뭘로 만들지 고민중~

홍민희

PLEAC 같은 건가요?

서상현

엇! 비슷하네요. 근데 코멘트도 달 수 있고, 아무나 올릴 수도 있어야 할 것 같아요.

홍민희

재미있겠는데요~

jong10

괜찮은 아이디어네요 :)

Kroisse

근데 뭘로 만들지 고민중.

홍민희

friendpaste 란게 있어요, 참고 http://www.friendpaste.com/about

wookay

Google AppEngine으로 만든 넘도 있군요 http://share11.appspot.com/about

wookay

같은 문제에 대한 서로 다른 언어의 풀이를 비교하면서 볼 수 없네요.

홍민희

slick or slack http://slickorslack.com/ 소스는 없는 듯.

wookay

재미 있겠네요.

다만 같은 입력과 결과를 가지는 코드라도 알고리즘에 따라 달라질 수 있으니 최소한의 규칙을 가지고 진행을 해야 할 것 같아요.

그리고 아래는 잘은 못하지만 루비 팩토리얼입니다.

def factorial n
    n == 1 ? 1 : n * factorial(n - 1)
end
엽우

J 언어

    fact=:1:`(* $:@<:)@.*
    fact 4
24
    fact 4 5
24 120
    (,.fact) i. 8
0    1
1    1
2    2
3    6
4   24
5  120
6  720
7 5040
김창준

Haskell로 만들어보면

Hugs> let f = 1:zipWith (*) f [1..] in take 10 f
[1,1,2,6,24,120,720,5040,40320,362880]
semmal