Похожие чаты

Language: Haskell Source: Rpn [] f = f rpn [h:t] f = rpn t

(f h)

main = print $ rpn [2, 3] (+)

Errors:
source_file.hs:2:19:
Occurs check: cannot construct the infinite type: t ~ [t]
Expected type: [[t]]
Actual type: [t]
Relevant bindings include
f :: t -> t1
(bound at source_file.hs:2:11)
t :: [t]
(bound at source_file.hs:2:8)
h :: t (bound at source_file.hs:2:6)
rpn :: [[t]] -> (t -> t1) -> t -> t1
(bound at source_file.hs:1:1)
In the first argument of ‘rpn’, namely ‘t’
In the expression: rpn t (f h)

source_file.hs:2:22:
Occurs check: cannot construct the infinite type: t1 ~ t -> t1
Relevant bindings include
f :: t -> t1
(bound at source_file.hs:2:11)
t :: [t]
(bound at source_file.hs:2:8)
h :: t (bound at source_file.hs:2:6)
rpn :: [[t]] -> (t -> t1) -> t -> t1
(bound at source_file.hs:1:1)
In the second argument of ‘rpn’, namely ‘(f h)’
In the expression: rpn t (f h)

source_file.hs:4:8:
No instance for (Show (a0 -> a0 -> a0))
(maybe you haven't applied enough arguments to a function?)
arising from a use of ‘print’
In the expression: print
In the expression: print $ rpn [2, 3] (+)
In an equation for ‘main’: main = print $ rpn [2, 3] (+)

source_file.hs:4:21:
No instance for (Num [a0]) arising from the literal ‘2’
In the expression: 2
In the first argument of ‘rpn’, namely ‘[2, 3]’
In the second argument of ‘($)’, namely ‘rpn [2, 3] (+)’

source_file.hs:4:27:
No instance for (Num a0) arising from a use of ‘+’
The type variable ‘a0’ is ambiguous
Note: there are several potential instances:
instance Num Integer -- Defined in ‘GHC.Num’
instance Num Double -- Defined in ‘GHC.Float’
instance Num Float -- Defined in ‘GHC.Float’
...plus two others
In the second argument of ‘rpn’, namely ‘(+)’
In the second argument of ‘($)’, namely ‘rpn [2, 3] (+)’
In the expression: print $ rpn [2, 3] (+)

5 ответов

20 просмотров

It looks like you posted long piece of code, consider editing it out and putting it on hastebin.com and pasting link to it instead. Alternatively, send your code in a file.

Wojciech-Pawlik Автор вопроса

what have I done

I suppose [] is the argument list?

And t is the tails function?

Oh.. Your Base case is wrong.. If I can guess the haskell syntax, rpn [] f = [] rpn [h:t] f = (rpn t f) h f

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
any reference of this implementation?
BitBuddha
29
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
9
Карта сайта