Довольно сложно ответить на этот вопрос, не видя определения типа stackVal
.
Давайте предположим, что это выглядит так:
type stackVal = Int of int | Float of float
Тогда я бы лично определил pushI для примите параметр int
.
Возможно, вы работаете в каком-то контексте, где вы получаете токены из потока символов. В этом случае вам может потребоваться определить все ваши функции pu sh, которые будут принимать строки, а не фактические значения чисел c.
Если вы расскажете нам (ответчик StackOverflow) подробнее о вашей проблеме, мы сможем помогите немного больше.
Для первой части вашего вопроса вы можете посмотреть на функцию meth_Pop
. Он показывает, что стек является списком, а верхняя часть стека является заголовком списка (h
в функции), а остальная часть стека является хвостом списка (t
в функции) .
Чтобы вывести sh значение int в стек, используя вышеуказанное значение stackVal
, вы получите что-то вроде этого:
let push myInt myStack = Int myInt :: myStack