[Haskell-beginners] [Haskell-cafe] Mathematical functions with multiple arguments

Sumit Sahrawat, Maths & Computing, IIT (BHU) sumit.sahrawat.apm13 at iitbhu.ac.in
Wed Mar 11 23:16:42 UTC 2015


The fixed-vector package uses a similar technique. The only trouble I'm
having is with converting Vec v (Double, Double) to [(Double, Double)] for
further use. I don't want to change all the code, but only the part where
the user provides me with arguments.

I'll keep looking into it. Thanks for the help.

On 12 March 2015 at 04:44, David Feuer <david.feuer at gmail.com> wrote:

> There are a lot of ways to do this sort of thing, and which one you choose
> will depend on exactly what you're trying to do. For example, you can write
> something vaguely like
>
> data Nat = Z | S Nat
> data SL (n :: Nat) a where
>   Nil :: SL Z
>   Cons :: a -> SL n a -> SL (S n) a
>
> plot :: forall (n::Nat) . (SL n Double -> Double) ->
>                                         SL n (Double, Double) -> IO ()
> On Mar 11, 2015 5:45 PM, "Sumit Sahrawat, Maths & Computing, IIT (BHU)" <
> sumit.sahrawat.apm13 at iitbhu.ac.in> wrote:
>
>> Hi everybody,
>>
>> I have a function of type
>>
>>     plot :: ([Double] -> Double)    -- A function to plot
>>          -> [(Double, Double)]      -- Range for all arguments
>>          -> IO ()
>>
>> I want to enforce the fact that ranges for all arguments should be
>> provided.
>> Is there a way to make the type system enforce it?
>>
>> --
>> Regards
>>
>> Sumit Sahrawat
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>
>>


-- 
Regards

Sumit Sahrawat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150312/48204b95/attachment.html>


More information about the Beginners mailing list