Hacker News new | ask | show | jobs
by ZenoArrow 3667 days ago
> "I haven't mentioned or was making any points about F# or C#; I was commenting on what appears to be your definition of a functional language"

sremani != ZenoArrow (though if you read this sremani, thank you for attempting to clarify).

There are many 'multi-paradigm' languages, and C# is one of them. From the C# Wikipedia page...

https://en.wikipedia.org/wiki/C_Sharp_(programming_language)

"C# (pronounced as see sharp) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines."

What makes a language 'functional' is first-class functions (i.e. functions that can be treated as values, which is what I was referring to in my earlier post).

As sremani said, F# is 'functional first', in the sense that the language is designed to make functional algorithms straightforward to express. You can write C# in a functional way too, but there's less syntactic sugar for this style of programming.

Hope that clears it up.

1 comments

> sremani != ZenoArrow

Apologies, my mistake.

> Hope that clears it up.

First paragraph on the Wikipedia page for Functional Programming [1]:

"In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions[1] or declarations[2] instead of statements."

I'll stick with my definition.

Hope that clears it up.

[1] https://en.wikipedia.org/wiki/Functional_programming

With your definition, is Lisp a functional language? Is it expression-oriented or statement-oriented?