我有一个 Haskell 问题,我想出了一个解决方案,但我就是不能把笔写在纸上。
基本上我有一个函数calc,它接受一个Int并返回一个Float.
calc :: Int -> Int -> Float
Run Code Online (Sandbox Code Playgroud)
在我的函数中,g我想将此函数应用于数组
g :: [Int] -> [Float]
Run Code Online (Sandbox Code Playgroud)
由于calc需要两个Int参数,我想消耗两个Ints(
x作为数组的第一个索引和x+1第二个索引)。这将继续在(数组索引)[1][2], [2][3], [3][4]等上重复该函数。
calc :: Int -> Int -> Float
Run Code Online (Sandbox Code Playgroud)
我试过在网上研究如何使用map,它基本上是这样说的?知道为什么代码不想编译,x+1甚至是可行的吗?
我试图将更多“数据”添加到玩家数据库中,但我得到了一些意想不到的结果:
数据类型声明:
data Player= Player teamName player goals
deriving (Show, Read)
type teamName = String
type player = String
type goals = [Int]
Run Code Online (Sandbox Code Playgroud)
db :: [Players]
db = [
Player "Bayern" "Lewandowski" [3, 52, 16, 3],
Player "Tottenham" "Kane" [11, 31, 3, 2]
]
Run Code Online (Sandbox Code Playgroud)
我用来向数据库添加新玩家的代码。
addPlayer :: Player -> [Players] -> [Players]
addPlayer playerInfo database = database++[playerInfo]
Run Code Online (Sandbox Code Playgroud)
用于显示给定数据库中的所有玩家:
showAllPlayers :: [Players] -> String
showAllPlayers [] =""
showAllPlayers [x] = getPlayer x
showAllPlayers (x:xs) = getPlayer x ++ "\n" ++ showAllPlayers …Run Code Online (Sandbox Code Playgroud)