Передача только одного параметра на карту вместо двух в схеме

У меня есть функция на схеме (extract-disjunct word nodes), которая принимает два параметра: word и nodes.

У меня есть предложение: «Это тестовое предложение». Для каждого слова в этом предложении я хочу применить указанную выше функцию.

Это можно сделать с помощью простой операции с картой.

Однако загвоздка в следующем: второй параметр nodes сам по себе является вложенным списком, и параметр остается неизменным для данного предложения, то есть он останется неизменным для списка слов, к которым я собираюсь применить карту. Это не изменится.

Я хочу применить карту следующим образом: (map extract-disjunct word nodes)

Однако я получаю сообщение об ошибке. Есть ли решение? Могу ли я оставить один параметр в карте постоянным?


person Rohit Shinde    schedule 08.03.2015    source источник


Ответы (1)


Просто определите другую функцию, которая принимает аргумент word и передает его и постоянный аргумент nodes в extract-disjunct. Используя каррирование, вы можете заставить это работать для любой константы nodes:

(define ((curried-extract-disjunct nodes) word) (extract-disjunct word nodes))

(map (curried-extract-disjunct nodes) words)
person Vitruvie    schedule 08.03.2015