/* ---- Google Analytics Code Below */

Wednesday, April 25, 2018

Functional Programming

Had not heard of this in a long time.  We examined the possibilities.  But is it enough?  Isn't it time to take a greater leap ahead to real intelligence-task level capabilities, and paste them together like Legos?   I know, still lots of grunt level work to do.

Using Functions for Easier Programming
By Neil Savage  in Communications of the ACM, Vol. 61 No. 5, Pages 29-30

As computers become more powerful and the programs that run them grow more complex, programmers are increasingly trying to make their lives easier by turning to an idea that dates to the early days of computer languages, an approach called functional programming.

"Functional programming's on a long steady burn, starting 30 or 40 years ago," says Simon Peyton Jones, a researcher at Microsoft Research in Cambridge, U.K., where he focuses on the functional language Haskell.

Programming languages break down into broad categories. There are imperative languages, which say, "do this, then do that," specifying a series of steps to accomplish a task. Functional languages, on the other hand, rely on functions, which are mathematical operations.

"A function is just basically a piece of an algorithm," says Iavor Diatchki, a senior research and development engineer at Galois, a software company in Portland, OR. "It's something that you can give some inputs and it computes some outputs." For instance, "plus" is a basic function; it says to take two integers and combine them to produce one integer as a result.

Functional languages operate at a higher level of abstraction, automating a lot of the details that underlie a particular operation. That makes it easier to write programs quickly. Years ago, when computers were slower, that ease came with a cost, Diatchki says; the program's default steps were not always the most efficient, and a programmer could make it run better by taking the time to tweak the details. That has changed. "Computers are a lot faster, so things like that don't matter all that much," says Diatchki, who argues that making better use of a programmer's time has become more important. "Also, the kind of software we write tends to be a lot more complicated, so some of these small performance issues are not nearly as important. What's important is that you manage to put all the pieces together and get the program to work."  ... " 

No comments: