Implicit parameters: Difference between revisions

From HaskellWiki
No edit summary
(fix link to ghc user guide)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The GHC manual on implicit parameters: [http://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-extensions.html#implicit-parameters].
{{GHCUsersGuide|exts/implicit_parameters||an Implicit Parameters section}}


Working example:
Working example:
Line 7: Line 7:
  import Data.List (sortBy)
  import Data.List (sortBy)
   
   
  sort  :: (?cmp :: a -> a -> Ordering) => [a] -> [a]
  sortBy' :: (?cmp :: a -> a -> Ordering) => [a] -> [a]
  sort   = sortBy ?cmp
sortBy' = sortBy ?cmp
 
  sort :: Ord a => [a] -> [a]
sort = let ?cmp = compare in sortBy'
   
   
  main = let ?cmp = compare in putStrLn (show (sort [3,1,2]))
  main = putStrLn (show (sort [3,1,2]))


[[Category:Language extensions]]
[[Category:Language extensions]]
[[Category:GHC]]
[[Category:GHC]]
[[Category:Stub articles]]
[[Category:Stub articles]]

Latest revision as of 22:55, 12 June 2021

The GHC Users Guide has an Implicit Parameters section.

Working example:

{-# LANGUAGE ImplicitParams #-}

import Data.List (sortBy)

sortBy' :: (?cmp :: a -> a -> Ordering) => [a] -> [a]
sortBy' = sortBy ?cmp
sort :: Ord a => [a] -> [a]
sort = let ?cmp = compare in sortBy'

main = putStrLn (show (sort [3,1,2]))