2010-03-03 8 views
5

R6RS 또는 Chez Scheme v7.9.4에 목록에 중복 요소가 있는지 확인하는 라이브러리 기능이 있습니까?Scheme : 목록에서 중복 요소 감지

다른 방법으로 세트에 내장 된 기능 (중복 요소를 허용하지 않음)을 가지고 있습니까? 지금까지 나는 here이라는 예를 찾을 수있었습니다.

문제는 실제로 Chez Scheme 라이브러리의 일부로 보이지 않는다는 것입니다. 비록 내가 이 내 자신의 버전을 쓸 수 있지만, 잘 오히려, 잘 알려진, 테스트 및 유지 관리 라이브러리 기능을 사용하고 싶습니다 - 특히 얼마나 기본적인 작업이 주어집니다.

따라서 간단한 "내장 함수 사용"또는 "내장 라이브러리 없음"으로 충분합니다. 감사!

답변

4

SRFI 1 on list processing has a delete-duplicates function (따라서 사용하고 나중에 길이를 확인할 수 있음) 유용 할 수있는 다른 기능이있을 수 있습니다.

+0

덕분에 -이 유용한 기능이 될 것 같습니다. SRFI 1이 Chez Scheme에 들어갈 때 어떤 생각? 이미이 SRFI가 제공해야 할 것의 많은 부분을 가지고있는 것으로 보이지만, v7.9.4에서는 삭제 중복을 볼 수 없습니다. –

+0

나는 PLT를 사용하고 Chez에 대해서는 아무 것도 모른다. 그러나 많은 SRFI는 일반적인 Scheme 구현에 사용할 수 있어야한다. 그들은 기본적으로 Scheme의 큰 표준 라이브러리입니다. Google에서 즉시이를 발견했습니다. https://code.launchpad.net/~scheme-libraries-team/scheme-libraries/srfi 이러한 SLS (Scheme 라이브러리 소스) 파일은 Chez를 통해로드 할 수 있어야합니다 (예 : http : // www). .scheme.com/csug8/libraries.html – mquander

+0

감사합니다. Chez에로드하기에 충분한 소스를 다운로드 할 수있는 기회가 없었음에도 불구하고 아마도 이것이 작동 할 것 같습니다. –

3

카일,

잠시 뒤 나는 체즈 계획과 몇 SRFIs를 사용하는 데 필요한. 당신이 당신의 CHEZSCHEMELIBDIRS에 '체즈 - srfi'의 경로를 추가 한 후 SRFI-1 가져올 수

http://github.com/dharmatech/chez-srfi

: (SRFI-1 포함)가 체즈 제도와 함께 사용하도록 변환하는 약간은에 있습니다 :

(가져 오기 (srfi : 1))

에드

+0

이 코드는 정말 유용하게 보이지만 스키마 인터프리터에서 가져 오기 명령을 실행하면 "예외 : 라이브러리 (srfi : 1)을 찾을 수 없습니다"라는 메시지가 계속 나타납니다. 나는 CHIZSCHEMELIBDIRS를 설정하고, --libdirs와 함께 실행하고, .../chez-srfi에서 실행 계획을 시도했지만, 항상 같은 결과를 보였다. 관련이 있는지 잘 모르겠지만 저장소를 복제 할 때 '*'가 포함 된 파일을 좋아하지 않는 것 같습니다. –

+0

Yikes, 일찍 응답하지 않아 죄송합니다. 나는 최근에 스택 오버 플로우를 많이 확인하지 않았다. Windows에 있습니까? 불행히도 이러한 srfi 라이브러리는 Windows에서 지원되지 않는 명명 규칙을 사용합니다. (알고 있습니다 ...). 나는 "휴대용"이름을 사용하는 해당 컬렉션의 복사본을 뽑아내는 것에 대해 생각하고 있습니다. – dharmatech

+0

문제 없습니다. 나는 윈도우에 있기 때문에 적어도 휴대용 버전의 라이브러리를 릴리스 할 수 있다면 최소한 한 팬을 셀 수 있습니다. :) –