[Solved] How to write this function in point-free style?
Another solution (needs import of Control.Applicative): between min max = liftA2 (&&) (min <) (max >) 1 solved How to write this function in point-free style?
Another solution (needs import of Control.Applicative): between min max = liftA2 (&&) (min <) (max >) 1 solved How to write this function in point-free style?
It’ll be perfectly safe with a smart constructor and stored dimensions. Of course there are no natural implementations for the operations signum and fromIntegral (or maybe a diagonal matrix would be fine for the latter). module Matrix (Matrix(),matrix,matrixTranspose) where import Data.List (transpose) data Matrix a = Matrix {matrixN :: Int, matrixM :: Int, matrixElems :: … Read more
import Control.Monad (replicateM) main :: IO () main = mapM_ print . map (uncurry (+)) =<< flip replicateM readIntPair =<< readLn readIntPair :: IO (Integer, Integer) readIntPair = do x <- readLn y <- readLn return (x, y) replicateM is from Control.Monad, the other functions are imported automatically from the Prelude. You will also want … Read more
By using ghci and simply inputing the code snippets you will see which of the values are accepted: Prelude> data Bin = B Bin | C [ Int] Prelude> a = C [ ] Prelude> b = B ( B C [ 2]) <interactive>:3:9: error: • Couldn’t match expected type ‘[Integer] -> Bin’ with actual … Read more
You can use the :t command in ghci to find out the type of any expression. GHCi, version 7.10.3: http://www.haskell.org/ghc/ 😕 for help Prelude> :t flip foldr id flip foldr id :: Foldable t => (a -> (a1 -> a1) -> a1 -> a1) -> t a -> a1 -> a1 solved Get the type … Read more
I think you’re looking for the inverse of this function conv = concat . f where f [] = [] f (x:xs) = map (x+) xs : f xs > conv [3,10,5] [13,8,15] > conv [2,5,15,34] [7,17,36,20,39,49] I came up something like this. Note that for length less than 3 there can’t be a unique … Read more
Here are a few hints foldAEB2 Nil Un Conc is the identity function foldAEB2 Nil Un Conc :: AEB2 a -> AEB2 a Un :: a -> AEB2 a \a -> Conc (Un a) (Un a) :: a -> AEB2 a 4 solved Function double in haskell
hof f list1 list2 = zipWith f list1 list2 f1 list1 list2 = hof (+) list1 list2 f2 list1 list2 = hof (++) list1 list2 f3 list1 list2 = hof (*) list1 list2 f4 list1 list2 = hof func list1 list2 where func x _ = x+42 f5 list1 list2 = hof func list1 list2 … Read more
You have a couple of typos in your imports. I think you mean: import Data.List import System.IO primeNumbers = [3,5,7,11] morePrime = primeNumbers ++ [13,17,19] i.e. Data.list should be Data.List and Syste.IO should be System.IO. 3 solved I cannot execute my Haskell code [closed]
Either isn’t simply a union of types; it’s a tagged union, which means every value has to explicitly specify which “side” of the type the wrapped value occurs on. Here’s an example, (with a Show instance derived for your Card type): *Main> Card Hearts Jack <interactive>:3:13: error: • Couldn’t match type ‘Court’ with ‘Either Pip … Read more