Я пытаюсь написать функцию, которая принимает строку и список пар кортежей. Я хочу выполнить поиск по списку кортежей, и если первое значение в кортеже соответствует входной строке, я хочу вернуть второе значение в этой паре. Я считаю, что он работает аналогично функции lookup
, но я не уверен, как его реализовать. Вот мое мышление до сих пор:Поиск по списку кортежей
search :: a -> [(a,b)] -> Maybe b
search a (x:xs) = if a == first value in x, return second value in x
-- If a is not in the list of tuples, return "Nothing"
Примером этого может быть:
search "x" ([("x", 3), ("z", 5)]) = 3
search "x" ([("y", 3), ("z", 5)]) = Nothing
Что такое 'S'? И как это не _exactly_ так же, как 'lookup'? – leftaroundabout
Я удалил, что S, извинения, это было из неправильно выполненного кода. Потому что lookup возвращает «Just x», а не «x». –
Да, но если тип возврата - «Может быть, b», то вы _can_ только возвращаете 'Just x'. Сам по себе «х» имеет неправильный тип ('b', а не' Maybe b'). – leftaroundabout