질문 오카 사키 이후 순수하게 기능적인 데이터 구조의 새로운 점은 무엇입니까? , 및 jbapple의 장대 한 답변은 함수 프로그래밍 (논리 프로그래밍과 달리)에서 차이점 목록을 사용하여 언급 한 것으로 최근에 관심을 보였습니다. 이로 인해 Haskell 의 차이점 목록 구현 을 찾을 수 있었습니다. 두 가지 질문이 있습니다 (StackExchange에서 두 가지 다른 질문을 해야하는 경우 용서하거나 수정하십시오).
간단한 질문은, Haskell 라이브러리에있는 것 외에 함수형 프로그래밍 및 / 또는 구현에서 차이점 목록에 대한 학문적 고려를 아는 사람이 있습니까? jbapple의 답변은 차이점 목록에 대한 인용을주지 않았습니다 (논리 프로그래밍의 차이점 목록은 지식과 주변에 어딘가에있는 몇 가지 소스에 있습니다). Haskell 구현을 찾기 전에 아이디어가 논리에서 함수형 프로그래밍으로 뛰어났다는 것을 알지 못했습니다. 물론 Haskell의 차이점 목록은 고차원 함수를 자연스럽게 사용하는 것으로 논리 프로그래밍의 기능과는 상당히 다르게 작동하지만 인터페이스는 확실히 유사합니다.
내가 묻고 싶었던 더 흥미로운 (그리고 훨씬 더 fuzzier-headed) 것은 앞서 언급 한 Haskell 차이점 목록 라이브러리에 대해 주장 된 점근 적 상한 이 정확하고 그럴듯한 지 여부입니다. 혼란은 게으름으로 인한 복잡성 추론에 대한 명백한 정보가 누락 되었기 때문에 발생할 수 있지만 큰 데이터 구조 (또는 클로저 형성 또는 변수 조회 또는 무언가 )를 대체하는 데 항상 일정한 시간이 걸리면 주장 된 경계가 나에게 의미가 있습니다. 아니면 "캐치"가 단순히 "헤드"및 "테일"의 실행 시간에 제한이 없다는 것이 그러한 연산이 임의의 지연된 계산 / 대체 더미를 통해 쟁기질을해야하기 때문일까요?