Схема: обнаружение дублирующих элементов в списке - PullRequest
5 голосов
/ 03 марта 2010

Имеет ли R6RS или Chez Scheme v7.9.4 библиотечную функцию для проверки того, что список содержит повторяющиеся элементы?

Или есть ли встроенные функции для наборов (которые запрещают дублирование элементов)? Пока что мне удалось найти только пример здесь .

Проблема в том, что она не является частью библиотеки Chez Scheme. Хотя я мог бы написать свою собственную версию этого, я бы предпочел использовать хорошо известную, протестированную и поддерживаемую библиотечную функцию - особенно учитывая, насколько это базовая операция.

Таким образом, достаточно просто «использовать эти встроенные функции» или «никакая встроенная библиотека не реализует это». Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 марта 2010

SRFI 1 при обработке списка имеет функцию delete-duplicates (так что вы можете использовать это и проверить длину позже) и вполне может иметь другие функции, которые могут оказаться полезными.

3 голосов
/ 04 марта 2010

Кайл

Некоторое время назад мне нужно было использовать несколько SRFI с Chez Scheme. Некоторые из них, преобразованные для использования со схемой Chez (включая SRFI-1), находятся по адресу:

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

После добавления пути к 'chez-srfi' в ваши CHEZSCHEMELIBDIRS вы можете импортировать SRFI-1:

(импорт (srfi: 1))

Ed

...