import Data.Bits
args value list = foldr f 0 $ zip (reverse list) [0..]
where
f x (a,b)
| testBit value a = setBit x 1
| otherwise = clearBit x 1
main = print $ args 12 [1,2,3]
По замыслу функция дожна вынимать из value биты с указынными номерами, и формировать из них новое число. В лист порядок битов обратный.
Вывод ошибки
No instance for (Bits (Int, t))
arising from a use of `args' at main.hs:15:15-29
Possible fix: add an instance declaration for (Bits (Int, t))
In the second argument of `($)', namely `args 12 [1, 2, 3]'
In the expression: print $ args 12 [1, 2, 3]
In the definition of `main': main = print $ args 12 [1, 2, 3]
Ответ на:
комментарий
от Miguel
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [Haskell] first steps... (2008)
- Форум [cl-gtk2][нужна помощь] (2010)
- Форум \[палёный мёд\] фантазии на тему своего ЯП (2013)
- Форум Не могу понять.... (2012)
- Форум не могу понять (2012)
- Форум Не могу понять... (2012)
- Форум Не могу понять (2012)
- Форум Не могу понять! (2009)
- Форум Не могу понять (2004)
- Форум Не могу понять различий (2012)