I don't have this "computer science". :) You don't need it for functional programming. I was trying to program "functionally" in C, 20 years ago (after asm), but I didn't know there was a whole programming paradigm supporting what I kept wanting to do. (I favored recursion, use of ternary conditional, wanted closures but didn't know what that was, avoided mutable state...)

However when I started learning OCaml (my first FP language), it was still a steep learning curve. I needed to develop enough familiarity with the idioms to use them with less mental friction. That takes time. I think imperative techniques can be easier to grasp, much like a GUI is easier at first, but it doesn't scale as well -- if you stick with the GUI you limit yourself. You don't need compsci, but I think there's more time to gain familiarity -- though in my case it might have been more unlearning that took the time.


On Tue, May 28, 2013 at 12:51 PM, Mr. Herr <misterherr@freenet.de> wrote:

Am 28.05.2013 03:17, schrieb Francois Berenger:
> On 05/27/2013 09:38 PM, Mr. Herr wrote:
>>
>> Am 27.05.2013 10:53, schrieb Erik de Castro Lopo:
>>> Mr. Herr wrote:
>>>> I think the biggest problem is you generally can only learn FP and/or Ocaml at
>>>> university, because:
>>>>
>>>> The FP terminology is at first (and a long time after starting learning it),
>>>> without
>>>> a teacher, not understandable.
>>> Sorry, that's simply not true.
>>>
>>> I studied my last univeristy course in 1992. I picked up Ocaml in 2004
>>> and Haskell in 2008. Before Ocaml, the only functional language I had
>>> used was scheme in the late 1980s.
>>>
>>
>> Scheme is terribly functional, so to say, and is absolutely immerged in the Lispy
>> slang.
>> All your knowlegde in C, Java, PHP, Assembler, Tcl/Tk, Pascal ... will not help you
>> there.
>>
>> I started as an IBM /370 Systems Admin in the late nineties, and it took me months of
>> reading in 2012
>> to get some understanding about what the heck the scheme people are talking about.
>>
>> Scheme is even a better example for the problems non university learners encounter,
>> than Ocaml, IMO.
>
> A very good book on scheme (which is also quite a deep introduction to computer
> science if you read the whole thing in fact):
>
> "structure and interpretation of computer programs"
>
> http://mitpress.mit.edu/sicp/full-text/book/book.html
>

Yes, a good book. The author takes care to only use terms and features he explained
before. I started working through it, then I thought there must be an easier way to
write some system admin scripts like checking if IPv6 is functional, ssh-agent has
identities, ... I will come back to the book.

I find for myself Ocaml is indeed easier to start with than Scheme for a FP beginner.

But this is the point: do we need computer science to start with functional programming?

Before someone answers "computer science will be good for you" - other programming
languages do not have this requirement.

/Str.


--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs