Slashdot Mirror


Functional Programming Languages as Free Speech?

timster asks: "Okay, we've talked about functional programming languages (see Haskell for an example) here before, and I got to wondering. A procedural program is a set of statements of things to *do*, and so has an obvious "machine" aspect to it. A purely functional program, however, can be viewed as a single mathematical *expression*, which accomplishes its "purpose" through the mechanism of being evaluated. My question is: if DeCSS were written functionally, would its First Amendment protections be stronger?"

1 of 11 comments (clear)

  1. No difference by Kaufmann · · Score: 4

    Computationally, this argument makes no sense. Basically, any program in a functional language can be written in an imperative one (otherwise one wouldn't be able to implement, say, Haskell in a regular computer). Sure, some programming idioms may fit the functional style better, but others come more naturally as imperative, and for these algorithms, an imperative language is more expressive. I feel that this is usually the case in applied number theory, in which algorithms naturally involve a lot of iteration, assignment, global variables and whatnot). Try to implement, say, Blowfish (or whatever) on Haskell (pure functional) and Eiffel (imperative with constraints), and Haskell advocates' "executable specification language" buzz suddenly doesn't sound so good anymore. (Don't get me wrong, I'm myself a big advocate of declarative programming. It's just not the Holy Grail.)

    So, even if the US law people are ignorant enough to consider an algorithm's description in English as protected speech while that same algorithm's implementation in an actual programming language is outlawed (which wouldn't surprise me, coming from a country where there were export restrictions on the PGP sources in digital form but it was OK to print and publish worldwide a book containing nothing but these same sources in printed form), I don't think that it'd make a whole lot of a difference for the people who make these decisions whether the language used in the implementation is statement- or expression-oriented. Even if it does, however mildly, look like mathematical notation.

    (Hrrrm. Wonder if the new language on which I'm working, whose concrete syntax translates to and from AMS-TeX and therefore can be typeset indistinguishably from actual math, would be an advantage, then.)

    --
    To the editors: your English is as bad as your Perl. Please go back to grade school.