English 中文(简体)
是否有任何标准图书馆类比:
原标题:Are there any standard library analogues:
  • 时间:2011-07-05 23:03:43
  •  标签:
  • haskell

在整理一些算法问题的同时,我还利用了这些功能。

Maps a list of functions to one value:

mapX :: a -> [a -> b] -> [b]
mapX _ [] = []
mapX x (f:fs) = [f x] ++ (mapX x fs)

地图

map2 :: (a -> b -> c) -> [a] -> [b] -> [c]
map2 _ [] [] = []
map2 f (ax:axs) (bx:bxs) = [f ax bx] ++ map2 f axs bxs

这对我来说,是:all [] == 真实:

all  :: (a -> Bool) -> [a] -> Bool
all  _ [] = False
all  f l  = all f l

Does the ^ operator implement fast exponentiation?

fastPow :: Int -> Int -> Int
fastPow x 0 = 1
fastPow x a
    | even a     = exp2 * exp2
    | odd a      = exp2 * exp2 * x
    where
        exp2 = fastPow x (div a 2)
最佳回答

www.un.org/Depts/DGACM/index_spanish.htm 地图

map ($x) fs

$为功能应用程序操作者,(x)为将其论点应用于x<>。

Maps a binary function to two lists:

zipWith。 即便你没有通过在Hoogle上查询签字的类型,也能够发现这一点。

www.un.org/Depts/DGACM/index_spanish.htm ^运营商是否实施快速扩展?

Yes

问题回答

暂无回答




相关问题
Euler Problem in Haskell -- Can Someone Spot My Error

I m trying my hand at Euler Problem 4 in Haskell. It asks for that largest palindrome formed by multiplying two three-digit numbers. The problem was simple enough, and I thought my Haskell-fu was up ...

How does foldr work?

Can anybody explain how does foldr work? Take these examples: Prelude> foldr (-) 54 [10, 11] 53 Prelude> foldr (x y -> (x+y)/2) 54 [12, 4, 10, 6] 12.0 I am confused about these executions....

Efficient queue in Haskell

How can I efficiently implement a list data structure where I can have 2 views to the head and end of the list, that always point to a head a tail of a list without expensive calls to reverse. i.e: ...

Problem detecting cyclic numbers in Haskell

I am doing problem 61 at project Euler and came up with the following code (to test the case they give): p3 n = n*(n+1) `div` 2 p4 n = n*n p5 n = n*(3*n -1) `div` 2 p6 n = n*(2*n -1) p7 n = n*(5*n -3)...

Ways to get the middle of a list in Haskell?

I ve just started learning about Functional Programming, using Haskel. I m slowly getting through Erik Meijer s lectures on Channel 9 (I ve watched the first 4 so far) and in the 4th video Erik ...

haskell grouping problem

group :: Ord a => [(a, [b])] -> [(a, [b])] I want to look up all pairs that have the same fst, and merge them, by appending all the list of bs together where they have the same a and discarding ...

Closest equivalent to subprocess.communicate in Haskell

I want to do a popen() / python s subprocess.communicate from Haskell - start a program, give it stdin, and get its stdout/stderr. What s the most direct / Haskellish way to do this?