2011-04-22 2 views
1

haskell.org에서 lost 되었기 때문에 archivehouse에서 Template Haskell tutorial을 읽고 무작위 부분을 제거한 것처럼 손상된 것으로 나타났습니다.템플릿 하스켈 : zipn

저는 zipn 구현에 대해 읽으 려했습니다. 그들이 가지고있는 유일한 코드는 다음과 같습니다.

\ y1 y2 y3 ­> 
    case (y1,y2,y3) of 
    (x1:xs1,x2:xs2,x3:xs3) ­> (x1,x2,x3) : ff xs1 xs2 xs3 
    (_,_,_) ­> [] 

mkZip :: Int ­> Expr ­> Expr 
mkZip n name = lam pYs (caseE (tup eYs) [m1,m2]) 
    where 
    (pXs, eXs) = genPE "x" n 
    (pYs, eYs) = genPE "y" n 
    (pXSs,eXSs) = genPE "xs" n 
    pcons x xs = [p| $x : $xs |] 
    b = [| $(tup eXs) : $(apps(name : eXSs)) |] 
    m1 = simpleM (ptup (zipWith pcons pXs pXSs)) b 
    m2 = simpleM (ptup (copies n pwild)) (con "[]") 

이것은 나에게 의미가 없습니다. 누구든지 튜토리얼의 좋은 사본을 가지고 있습니까? 또는 archive.org에있는 내용은 무엇입니까?

+1

다른 자습서 중 하나를 사용했을 수 있습니까? http://stackoverflow.com/questions/5724413/is-there-any-template-haskell-tutorial-for-someone-who-doesnt-know-lisp/5724957#5724957 –

+0

[Haskell 위키의 템플릿 하스켈 페이지]보기 (http://www.haskell.org/haskellwiki/Template_Haskell#zipWithN). – hammar

+0

링크에 문제가없는 것 같습니다. 어쩌면 당신은 단지 상처를 입었을 것입니다. 왜냐하면 ... 하스켈이기 때문입니다. –

답변

1

빠른 검색을 통해 Simon Peyton-Jones가 직접 작성한 "Template Meta-programming for Haskell"이라는 제목의이 논문을 만들었습니다!

희망이 도움이됩니다!

+4

처음에는 그 링크가 끊어졌고 두 번째로 무친 (Muchin)이 사용한 튜토리얼을 보았을 때 첫 번째 문장은 튜토리얼이 쓰여 졌다고 말합니다. 너무 혼란 스러웠다. 종이를 찾고 있다면, 여기에 있습니다 : http://research.microsoft.com/en-us/um/people/simonpj/papers/meta-haskell/ –

0

이 문서에서 발견 된 zipN의 구현이 실제로 GHC의 게시 된 버전으로 컴파일 된 것을 알 수 있습니다. 직접 컴파일하려고 시도했지만이 이메일에 설명 된 오류가 발생했습니다.

http://www.haskell.org/pipermail/template-haskell/2003-July/000126.html (패턴 조각이 구현되지 않음).

2003 년에 구현되지 않은

있지만 아직 구현되지 않은 것 오늘 : http://www.haskell.org/ghc/docs/7.6.1/html/users_guide/template-haskell.html (패턴 조각은 지원되지 않음) 그러나이

당신이 템플릿 하스켈 사용 zipWithN의 구현을 찾을 수 있습니다

http://www.haskell.org/haskellwiki/Template_Haskell#zipWithN