Я не думаю, что Вы "понимаете прагматическую проблему, что JavaScript просто, с чем мы должны работать теперь". На самом деле это - очень мощный язык. У Вас был свой апплет Java в браузере в течение многих лет, и где это теперь?
Во всяком случае, Вы не должны "пачкаться" для работы над клиентом. Например, попробуйте GWT.
Стандартная библиотека R5RS и R6RS для списков
определить memq
, memv
и член
которые можно использовать для этой цели.
В схеме PLT есть
(member whatever list)
(memv whatever list)
(memq whatever list)
из SRFI, которые используют, соответственно, equal?
, eqv?
и eq?
для проверки равенства. Существует также ряд других библиотечных функций, связанных с поиском в списках:
(define (contains? l i)
(if (empty? l) #f
(or (eq? (first l) i) (contains? (rest l) i))))
Нет, не существует встроенного предиката списка, который сделает это за вас. Однако очень легко определить лямбда или макрос для этого.