functional-programming-jargon icon indicating copy to clipboard operation
functional-programming-jargon copied to clipboard

Constant definition

Open ogerardin opened this issue 9 years ago • 5 comments

I think it's not correct to define a constant as a variable that can only be assigned once; that's the mechanism that most programming languages use to implement constants, but it's not a definition. I would just define it as a symbolic name for a value.

ogerardin avatar Jul 26 '16 09:07 ogerardin

Constant is also the name of a type that is a monad. I don't know if that should be mentioned on the doc though

On Tue, Jul 26, 2016, 2:06 AM Olivier Gérardin [email protected] wrote:

I think it's not correct to define a constant as a variable that can only be assigned once; that's the mechanism that most programming languages use to implement constants, but it's not a definition. I would just define it as a symbolic name for a value.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/hemanth/functional-programming-jargon/issues/78, or mute the thread https://github.com/notifications/unsubscribe-auth/AAB-4JnmIZ9lmKsfqGQh8MAVTYBxlHCeks5qZc4YgaJpZM4JU71- .

jethrolarson avatar Jul 26 '16 18:07 jethrolarson

I guess the current definition is more of const than the concept. If we define it as a symbolic name for a value then what distinguishes it from a variable?

jethrolarson avatar Jul 27 '16 17:07 jethrolarson

The only difference is that a variable's value can change over time. But we know that in pure functional world there is no such thing as a variable anyway :)

ogerardin avatar Jul 28 '16 07:07 ogerardin

In a pure functional world variables are like math variables. If you say x = 1 then later say it's 2 you're just being a ridiculous lier

On Thu, Jul 28, 2016, 12:25 AM Olivier Gérardin [email protected] wrote:

The only difference is that a variable's value can change over time. But we know that in pure functional world there is no such thing as a variable anyway :)

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/hemanth/functional-programming-jargon/issues/78#issuecomment-235819827, or mute the thread https://github.com/notifications/unsubscribe-auth/AAB-4NXo-M7-ZZusQUalgMkTzUOjNwELks5qaFl3gaJpZM4JU71- .

jethrolarson avatar Jul 28 '16 07:07 jethrolarson

That is, they can be replaced with the values that they represent without affecting the result.

true, but this will work if only n is known value:

const fact = n => n < 2 ? 1 : n * fact(n-1)

stereobooster avatar Aug 05 '17 13:08 stereobooster