Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the formal difference between a function-level language and a functional one?

I'm pretty good at Haskell and have been teaching myself J. I've read about John Backus' distinction between value-level and function-level programming.

J is a function-level language that allows one to write in a value-level style if desired. (I hope I've got that right.) Where does Haskell fit in in this? I know Haskell permits a tacit programming style and I know it's a pure functional language, but do you think Backus would describe it as a value-level or a function-level language?

In sum, function-level and functional languages seem to be related to each other, but not exactly the same. Could someone clarify?

like image 496
Gregory Higley Avatar asked Jul 03 '10 03:07

Gregory Higley


1 Answers

Pretty much every practical functional programming language is still value-level programming; function-level programming is more of an academic/algebraic form of programming looking to derive properties from how functions are formed from other functions.

Because any real practical application requires operating on some form of data (abstract calculations on abstract inputs generally aren't very useful in day-to-day life), this brings such into the value-level domain.

http://en.wikipedia.org/wiki/Function-level_programming#Contrast_to_functional_programming

like image 73
Amber Avatar answered Oct 16 '22 06:10

Amber