다음의 λ 용어는 여기에서 정상적인 형태입니다.
sort = (λabc.(a(λdefg.(f(d(λhij.(j(λkl.(k(λmn.(mhi))l))
(h(λkl.l)i)))(λhi.(i(λjk.(bd(jhk)))(bd(h(λjk.(j
(λlm.m)k))c)))))e))(λde.e)(λde.(d(λfg.g)e))c))
교회 인코딩 목록에 대한 정렬 알고리즘을 구현합니다. 즉, 다음의 결과입니다.
sort (λ c n . (c 3 (c 1 (c 2 n)))) β→ (λ c n . (c 1 (c 2 (c 3 n))))
비슷하게,
sort_below = λabcd.a(λef.f(λghi.g(λj.h(λkl.kj(ikl)))(hi))e(λgh.h))
(λe.d)(λe.b(λf.e(f(λghi.hg)(λgh.cfh))))
또한 고려할 숫자에 대한 제한을 추가 인수로 제공해야한다는 점을 제외하고는 위와 동일한 목록에 대한 정렬을 구현합니다.
sort_below 4 [5,1,3,2,4] → [1,2,3]
해당 용어가 기본 아핀 논리에 입력 가능한지 여부를 결정하려고합니다. 공개적으로 사용 가능한 EAL 유형 검사기를 모르기 때문에 예상보다 어려운 작업을 수행하고 있습니다. sort
기본 아핀 로직에 대한 유형이 있습니까?
"일반"유형이 있습니까? Haskell에 연결하면 어떻게됩니까?
—
Andrej Bauer
이 의견이 답이 될 수 있을까요?
—
Andrej Bauer
질문을 읽는 동안. :-)
—
Tayfun Pay