我在使用一个函数来删除 Haskell 中的三个参数时遇到了麻烦。
免责声明:不是课程作业,今天有人向我提出了这个问题,这一直困扰着我。
我们得到的自定义类型/功能是(只能记住类型)
type MyThing
= (Char, String)
type MyThings
= [MyThing]
funcA :: MyThings -> String -> String
funcB :: MyThings -> String -> Int -> String
我们开始:
funcB as str n = iterate (funcA as) str !! n
并将其减少如下:
funcB as str n = iterate (funcA as) str !! n
funcB as str = (!!) . (iterate (funcA as)) str
funcB as = (!!) . (iterate (funcA as))
funcB as = (!!) . (iterate . funcA) as
然后,卡住了。我们只是不知道如何避免使用最后一个参数。我知道我以前在某个地方看到过类似的情况,并且有一个解决方案。
希望一些 Haskell 天才能指出我为什么是个白痴……