Я хочу сделать функцию, которая, когда дана строка, например, «AB» и «cdabd», когда он будет использоваться на этих двух строк он будет выводить «CD»делает функцию takeUntil в Haskell
у меня есть это вверх в настоящий
takeUntil :: String -> String -> String
takeUntil [] [] = []
takeUntil xs [] = []
takeUntil [] ys = []
takeUntil xs ys = if contains xs ys then -- ???? I get stuck here.
класса содержит функцию, в которой я определил ранее (вся эта функция должна быть чувствительна к регистру) содержит функции:
contains :: String -> String -> Bool
contains _ [] = True
contains [] _ = False
contains xs ys = isPrefixOf (map toLower ys) (map toLower xs) || contains (tail(map toLower xs) (map toLower ys)
Ваше определение немного неверно, вы имели в виду 'takeUntil' на последних 4 строках? – bheklilr
да я. это должно быть takeUntil – Nicholas
Кроме того, было бы очень полезно, если бы вы могли опубликовать код для 'contains', или, по крайней мере, подпись типа и более конкретное описание того, что он делает. – bheklilr