
If you're interested in OS integration, it may be worth learning C# if
you're on windows. It's certainly quite amenable to 'glue', and it's
gaining more functional features all the time. Also, you have the
option of branching out to F# if you enjoy the .Net environment, but
crave a purer language.
I'd probably consider some combination of .Net and Mathematica if I
were doing trading on Windows and didn't mind paying for the software,
but it might not be a popular opinion :-)
Disclaimer - I don't really know how trading works in practice.
On Sun, Apr 29, 2012 at 10:56 PM, Michael Orlitzky
On 04/29/2012 10:28 AM, Lorenzo Bolla wrote:
What's the difference? You're not passing around the actual function, in any language.
$ python Python 2.7.3 (default, Apr 14 2012, 23:17:33) [GCC 4.7.0 20120407 (prerelease)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
def f(): ... print 'foo' ... def g(f): ... print 'bar' ... f() ... g(f) bar foo
Also: http://en.wikipedia.org/wiki/First-class_function#Language_support
You're not passing around the function, you're passing around the name of the function or a pointer. Python happens to know that when you write f(), you want to evaluate the function named f, much like when you say f.call() in Ruby.
Ruby doesn't even have functions, only methods, so you have to entertain the idea that the same thing can have two different names to even have this discussion. Passing functions to other functions is so fundamental to Ruby that it's baked into the language:
irb(main):001:0> [1, 2, 3].map { |x| 2*x } => [2, 4, 6]
They're not called functions, but the distinction is imaginary. For an imperative language, the culture pretty strongly encourages you to use map, filter, fold etc. which are all passed functions (Procs) using the block syntax.
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners