У меня есть массив:Проверяется модифицированный элемент массива является членом в том же массиве
{ "abc" "def" "cba" "fed" "junk" }
Я хочу, чтобы проверить, если каждый элемент массива имеет перевернутую версию в качестве члена в том же массив.
В Python, я хотел бы выразить это так:
>>> array = ["abc", "def", "cba", "fed", "junk"]
>>> [item for item in array if item[::-1] in array] # [::-1] reverses a string
['abc', 'def', 'cba', 'fed']
Или даже:
>>> list(filter(lambda x: x[::-1] in array, array))
['abc', 'def', 'cba', 'fed']
Я пробовал:
IN: scratchpad dup [ dup reverse swap member? ] filter
--- Data stack:
{ "abc" "def" "cba" "fed" "junk" }
{ }
Неа, котировка не выполняется для каждого элемента ,
Я уверен, что есть очевидный ответ или комбинатор и цитата, которые делают это эффективно. Что это?
Aha! Спасибо! – cat
Так 'in?' Для 'set' и 'member?' Для 'seq'uences. '{Array}' является последовательностью, правильно? Итак, есть ли причина использовать 'in?' Over 'member?'? – cat
'in?' - это несколько символов короче, чем 'member?'. Для последовательностей они делают то же самое. Причина в том, что есть два варианта, вероятно, наследие. –