[英]haskell, function composition
我需要一些幫助來解決Haskell中有關函數組合的任務。 我需要編寫一個函數,給定一個整數n
和一個內部元素列表,並返回每個內部列表中n-th
元素的列表。 這樣就好像: select 2 [[2,3,4],[5,6],[9,9,9]] = [3,6,9]
。 問題是,我需要使用函數組合編寫它,因此它看起來應該像select = ...
換句話說,我想使這一點沒有意義 。
現在,我有以下內容:
select::Int->[[Int]]->[Int]
select a = map $ head. reverse. take a
我堅持使用它,我不知道如何從第一和唯一子句中刪除那些a
。 有人可以幫我嗎?
根據當前的情況,可以使用select = map . ((head . reverse) .) . take
select = map . ((head . reverse) .) . take
select = map . ((head . reverse) .) . take
,你也可以簡化這個來select = map . (last .) . take
select = map . (last .) . take
select = map . (last .) . take
。 另一種選擇是使用select = map . flip (!!) . subtract 1
select = map . flip (!!) . subtract 1
select = map . flip (!!) . subtract 1
。
您可以使用pointfree
包自動派生功能的pointfree版本。
通常我會建議不要這樣做。 以無點樣式定義時,具有多個參數的函數會變得很模糊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.