[Haskell-cafe] Mapping string to a function

Oliver Batchelor saulzar at gmail.com
Thu Mar 15 06:26:01 CET 2012


You could store your test data in a named map e.g.

import qualified Data.Map as M
import System

testSets :: M.Map String [Int]
testSets = M.fromList
    [  ("testdata",   testdata)
    ,  ("testdata2", testdata2)
    ]

f :: Int -> Something
f = ....

main = do
  [arg] <- getArgs

  case M.lookup arg testSets of
      Just testSet -> print (map f testSet)
      Nothing        -> print "Test set not found!"

On Thu, Mar 15, 2012 at 12:59 PM, Haisheng Wu <freizl at gmail.com> wrote:
> Hi there,
>  Do you have any comments / suggestions for the following scenario?
>
>  I have two list and a function over list
>  testdata :: [Int]
>  testdata2 :: [Int]
>  f testdata = map g testdata
>
>  What I like to do is choosing what test data via command line arguments.
>  i.e. test.hs testdata2 will run against testdata2
>
>  I could make it using pattern match between argument and data
> definition but it is annoy.
>  code here: https://github.com/freizl/dive-into-haskell/blob/master/sandbox/one-in-arith-seq.hs
>
>  I'm wondering it can be done simply in haskell.
>
>  Thanks a lot.
> -Haisheng
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list