Define function in Haskell with computations in arguments -


how can define function in haskell this:

x(0)     = 1 x(2*k)   = sin(k) * cos(k) x(2*k+1) = cos(k/2) - tan(2*k) 

haskell not allow define function computation in arguments. raise "parse error in pattern" error.

if try define in terms of x(k), this:

x(k) = sin(k/2) * cos(k/2) x(k) = cos((k/2-1)/2) - tan(k/2-1) 

i have 2 definitions x(k), not valid.

you can define follows:

f 0 = 1 f | = sin(k) * cos(k)     | otherwise = cos(k/2) - tan(2*k)     k = fromintegral $ div 2 

i replaced x f because x looks more variable function. furthermore used i incoming parameter.

div 2 means divide i 2 (and floor result), such 0 maps 0, 1 0 , 2 1. 1 can use fromintegral convert floating; otherwise cannot take sin, etc.

now there 2 cases (except f 0 case): 1 i even (2*k) , 1 i odd (in case otherwise). can use guards this. case, use sin(k) * cos(k) , other 1 cos(k/2)-tan(2*k). note k/2 use floating point, if i 7, k 3 , calculate cos(1.5)-tan(6).


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -