haskell,函数组合

haskell, function composition

我需要一些帮助来解决 Haskell 中的函数组合任务。我需要编写一个函数,给定一个 Integer n 和一个内部元素列表列表,returns 每个内部列表中 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 . (last .) . take。另一种方法是使用 select = map . flip (!!) . subtract 1.

您可以使用 pointfree 包自动派生函数的无点版本。

一般来说,我会反对这样做。具有多个参数的函数在以 pointfree 样式定义时变得非常混乱。