В Python я могу сделать «x в списке», чтобы увидеть, содержит ли список x. Есть ли какой-либо аналог, встроенный в Scheme, для этого?
Встроенная схема для проверки сдерживания списка
Ответы (3)
R5RS и R6RS < href="http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-4.html#node_idx_226" rel="nofollow noreferrer">стандартная библиотека для списков определить memq, memv и member, которые можно использовать для этой цели.
person
Jérémie Koenig
schedule
08.12.2009
Это не только в SRFI, но и в R5RS (который реализован во всех приличных реализациях) schemers.org/Documents/Standards/R5RS/HTML/
- person newacct; 09.12.2009
Спасибо за ваш комментарий, я исправил ссылки в ответе.
- person Jérémie Koenig; 09.12.2009
В схеме PLT каждый имеет
(member whatever list)
(memv whatever list)
(memq whatever list)
из SRFI, которые используют соответственно equal?, eqv? и eq? для проверки на равенство. Есть также ряд других библиотечных функций, связанных с поиском в списках:
person
mqp
schedule
08.12.2009
Нет, нет встроенного предиката списка, который сделает это за вас. Однако очень легко определить лямбду или макрос, чтобы сделать именно это.
person
Pablo Santa Cruz
schedule
08.12.2009