我正在寻找Declare @Reps table (Name varchar(50))
Insert Into @Reps Select Distinct Name From Representatives
Select *
From OtherTable
Where RepName not in (Select * From @Reps)
类型的函数。换句话说,一个可以将第三个参数部分应用于函数的函数。
是否有具有此类功能的库?对我来说,为一个榆树社区图书馆(也许是elm-function-extra)创建一个或添加这样的函数是否有用?
答案 0 :(得分:4)
我不相信存在具有该功能的库,但定义它是微不足道的:
f : (a -> b -> c -> d) -> c -> a -> b -> d
f fn c a b =
fn a b c
它是否属于社区图书馆的问题可能最好作为mailing list or other contribution channels中的讨论处理。
我无法在Hoogle上找到一个等效的Haskell函数,所以我的预感是,如果它在Haskell生态系统中没有足够的用处进行推广,那么Elm的大部分都会吸取它的灵感,这可能不太好适合核心的榆树社区图书馆,但您可以随时在社区论坛中提出您的观点!
答案 1 :(得分:3)
Elm包网站现在链接到a utility to search functions by type signature。
我用它来寻找你的功能并找到:
swirlr : (a -> b -> c -> d) -> c -> a -> b -> d
它位于Fresheyeball/elm-function-extra。
你似乎已经知道(或有直觉),但请注意,只要看一下类型,就可以知道这是你正在寻找的功能。实际上,这是一个定理,只存在这种类型的一个函数(除非你使用Debug.crash
来实现它!)。这是the 1989 article which described this result,但说实话,这很难理解。