簡體   English   中英

haskell,功能組成

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM