我在currying函數中刪除Haskell中的三個參數時遇到了麻煩。柯西3在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的天才可以指出爲什麼我是一個傻瓜...
你可以只使用['pointfree'](http://www.haskell.org/ haskellwiki/Pointfree#Tool_support)自動執行此操作。 – kennytm
大喊,會調查一下! –