

haskellでべき乗計算をしたいのですが、 現在は実行結果`["8"] ["2","^",3"]`までしか計算できません。
再帰的に`["256"]`を計算できるようにどのようにすればよいでしょうか

[code]

    getLastThreeValues :: [String] -> [String]
    getLastThreeValues [x, y, z] =  beki [x, y, z]
    getLastThreeValues (_:xs) = getLastThreeValues xs
    
    beki :: [String] -> [String]
    beki [base, "^", exponent] = [show (read base ^ read exponent)]
    
    main :: IO ()
    main = do
        print $ getLastThreeValues["2","^","2","^","3"] 
    
[/code]


CC BY-SA 4.0
2023-06-22T18:38:59.137
95329
2023-06-22T22:44:05.997
2023-06-22T22:44:05.997
19110
58829
question
haskell
再帰的にべき乗を計算したいが、途中までしかできない


質問者さんが最終的にやりたいことと合致しているかどうかわかりませんが、以下のように書くことはできます。

[code]

    beki :: [String] -> [String]
    beki [x] = [x]
    beki (base : "^" : exponent) = [show (read base ^ (read $ head $ beki exponent))]
    
    main :: IO ()
    main = print $ beki["2","^","2","^","3"]
    
[/code]


CC BY-SA 4.0
2023-06-22T21:42:50.237
95332
2023-06-22T21:51:14.097
2023-06-22T21:51:14.097
43506
43506
95329
answer