Browse thread
[Caml-list] ANNOUNCE: mod_caml 1.0.6 - includes security patch
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Eray Ozkural <exa@k...> |
| Subject: | Re: [Caml-list] ANNOUNCE: mod_caml 1.0.6 - includes security patch |
On Tuesday 20 January 2004 13:31, Markus Mottl wrote:
> "where" is one keyword, which I might find useful. Code can be made much
> more readable if function applications come first and values used in it
> are defined further below. Otherwise, the user may have to scan large
> portions of value definitions before getting to the "core" of a function.
Absolutely! It looks much better than 5 nested let scopes (although they are
semantically identical). Where was this inefficient DFT function I had
written. Ah, here it is:
dft :: (RealFloat a) => (SampleVector (Complex a)) -> Int
-> (SampleVector (Complex a))
dft x n =
listArray (0, (n-1)) [transform f | f <- [0..(n-1)]]
where
transform f = scale * (foldl1 (+) [freqcomp f k | k <- [0..(n-1)]])
freqcomp f k = (x!k) * (exp_polar (-(2 * (fromIntegral k)
* pi * (fromIntegral f) ) /
(fromIntegral n)) )
scale = 1/(fromIntegral n)
I find use of where keyword much more readable in many places.
Cheers,
--
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara KDE Project: http://www.kde.org
www: http://www.cs.bilkent.edu.tr/~erayo Malfunction: http://mp3.com/ariza
GPG public key fingerprint: 360C 852F 88B0 A745 F31B EA0F 7C07 AE16 874D 539C
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners