스택 관리 시스템을 개발하고 싶습니다. 목록은 비어있는 것으로 시작합니다 []. 사용자는 숫자를 입력 할 수 있고 목록에 추가되며 이진 연산은 목록에서 두 개의 첫 번째 숫자를 취하여 작업을 수행 한 다음 목록에 다시 추가합니다 . 예 :haskell : RPN 계산기
[] : 3
[3] : 4
[4,3] : +
[7] : c
[] : 123
[123] : 3
[3,123] : *
[369] :
콘솔에서 입력을 처리하는 방법을 알 수 없습니다. 나는이 깨진 코드를 가지고있다.
import System.Environment
import System.Directory
import System.IO
import Data.List
stack = []
add1 :: [Int] -> [Int]
add1 [] = []
add1 [x] = [x]
add1 [x,y] = [(x+y)]
add1 x:(y:xs) = (x+y) : (xs : [])
--sub :: [Int] -> [Int]
--sub [] = []
--sub x:(y:xs) = (x-y) : xs
--mul :: [Int] -> [Int]
--mul [] = []
--mul x:(y:xs) = (x*y) : xs
--div :: [Int] -> [Int]
--div [] = []
--div x:(y:xs) = (x/y) : xs
c :: [Int] -> [Int]
c = []
push :: [Int] -> a -> [Int]
push [] a = [a]
push (x:xs) a = a : (x:xs)
dispatch :: [(String, Int -> IO())]
dispatch = [ ("+", add)
-- , ("-", sub)
-- , ("*", mul)
-- , ("/", div)
]
xcl = do
print stack
answer <- readLine
그러나 나는 올바른 방향으로 가고 있는지조차 모른다. 어떤 도움이 될 것입니다. 고맙습니다. 우리가 그것을 조작 할 것이기 때문에
감사합니다. 나는 일할 수있는 프로그램을 가지고있다 :) – DustBunny