gpt4 book ai didi

haskell - 如何在haskell中输入整数? (在控制台输入)

转载 作者:行者123 更新时间:2023-12-02 14:41:09 24 4
gpt4 key购买 nike

如何在控制台中输入一个整数,将其存储在变量中,然后将其作为我创建的函数的参数传递?

到目前为止,为了使其有效,我必须执行以下操作:

在最后一行中,您可以看到我如何应用该函数,我想要做的是通过控制台请求变量作为整数应用于函数,然后打印结果。

    mayor :: Int -> Int -> Double
mayor x y =
if x < y
then 0.1
else 0.3


compra :: Int -> Int -> Int -> Int -> Int -> Int -> Double
compra n v u iva p vp =
let valor_compra = (fromIntegral v) * (fromIntegral n) * (1 - mayor n u)
valor_iva = valor_compra * (fromIntegral iva) / 100
valor_puntos = fromIntegral (p * vp)
efectivo = if (valor_puntos < valor_compra) then valor_compra-valor_puntos else 0
in valor_iva + efectivo

main = do
print (compra 20 2000 7 14 10 1500)

我这样做的方式给了我结果16920.0

最佳答案

使用getLinereadLn,然后将输入值解析为您需要的类型,如下所示:

mayor :: Int -> Int -> Double
mayor x y =
if x < y
then 0.1
else 0.3


compra :: Int -> Int -> Int -> Int -> Int -> Int -> Double
compra n v u iva p vp =
let valor_compra = (fromIntegral v) * (fromIntegral n) * (1 - mayor n u)
valor_iva = valor_compra * (fromIntegral iva) / 100
valor_puntos = fromIntegral (p * vp)
efectivo = if (valor_puntos < valor_compra) then valor_compra-valor_puntos else 0
in valor_iva + efectivo

main = do
putStrLn "enter value for x: "
input1 <- getLine
putStrLn "enter value for y: "
input2 <- getLine
let x = (read input1 :: Int)
let y = (read input2 :: Int)
print (compra x y 7 14 10 1500)

关于haskell - 如何在haskell中输入整数? (在控制台输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com