Functional programming is a paradigm which attempts to solve computational problems by the chained evaluation of functions whose output is determined by their inputs rather than the programme state. In this style of programming, side effects and mutable data are deprecated and usually strictly ...
0
votes
1answer
25 views
How do I efficiently avoid redundant branch / leaf nodes in a functional DSL written in an imperative language?
Suppose I create a simple functional Domain-specific language (DSL) using an imperative language, in this case C++. Here is a simple implementation of a DSL that can has the notion of a simple value ...
14
votes
3answers
2k views
What problem do algebraic data types solve?
Fair warning, I'm new to functional programming so I may hold many bad assumptions.
I've been learning about algebraic types. Many functional languages seem to have them, and they are fairly useful ...
13
votes
5answers
882 views
Is the semantic contract of an interface (OOP) more informative than a function signature (FP)?
It is said by some that if you take SOLID principles to their extremes, you end up at functional programming. I agree with this article but I think that some semantics are lost in the transition from ...
28
votes
6answers
6k views
Why do programs use call stacks, if nested function calls can be inlined?
Why not have the compiler take a program like this:
function a(b) { return b^2 };
function c(b) { return a(b) + 5 };
and convert it into a program like this:
function c(b) { return b^2 + 5 };
...
4
votes
2answers
122 views
Are (basic) SQL queries semantically equivalent to Higher Order Functions?
Is SQL basically a domain specific instance of map + fold + filter?
It seems to me that the following SQL:
SELECT name
FROM fruits
WHERE calories < 100
is just syntactic sugar for the ...
8
votes
1answer
153 views
Is it possible to have currying and variadic function at the same time?
I am thinking about making currying and variadic functions both available in a dynamically-typed functional programming language, but I wonder if it is possible or not.
Here are some pseudocode:
sum ...
32
votes
9answers
4k views
Why would a program use a closure?
After reading many posts explaining closures here I'm still missing a key concept: Why write a closure? What specific task would a programmer be performing that might be best served by a closure?
...
1
vote
2answers
102 views
distinguish requests from the same vehicle
I am implementing an small app to track buses based on Crowdsorcing. The riders send data long, lat, mac, route to the server as JSON string.
In my database I have table bus to insert the transmitted ...
1
vote
1answer
81 views
Are There Tools for Statically Evaluating C++ Functions for Side Effects? [closed]
I'm interested in having a tool that can evaluate whether a function in C++ has side effects.
I'd like to be able to mark functions as having or not having side effects, which I think would make ...
1
vote
1answer
201 views
Why can a constructor be used without `new` keyword in Javascript?
I found Date can be used without the new keyword.
Date(1)
> "Thu May 28 2015 15:54:20 GMT+0800 (CST)"
new Date(1)
> Thu Jan 01 1970 08:00:00 GMT+0800 (CST)
I was wondering whether there is ...
4
votes
2answers
119 views
Functional Programming - Functions defining specific evaluation of functions passed to it for optimization
Firstmost, I am just getting started with functional programming so I would appreciate corrections in any terminology I may have used incorrectly.
Story time, While doing a Project Euler Problem 1 in ...
4
votes
2answers
152 views
How to design for good abstractions using algebraic data type?
Every now and then I have peaked at Haskell Tutorials and found the Algebraic data types quite interesting. I took their purpose to be to represent types that have completely separable states. Sadly, ...
6
votes
3answers
168 views
What is the functional programming answer to type-based invariants?
I am aware that the concept of invariants exists across multiple programming paradigms. For example, loop invariants are relevant in OO, functional and procedural programming.
However, one very ...
7
votes
4answers
312 views
What makes functional programming languages declarative as opposed to Imperative?
On many articles, describing the benefits of functional programming, I have seen functional programming languages, such as Haskell, ML, Scala or Clojure, referred to as "declarative languages" ...
3
votes
3answers
344 views
Functional vs object-oriented style in C#
I'm learning functional programming and face the following confusion when applying it to my C# projects:
I begin by writing pure, static functions and use function composition.
After the code ...
5
votes
3answers
206 views
Functional programming and Text adventures
This is mostly a theoretical question about FP, but I'll take text adventures (like old-school Zork) to illustrate my point. I'd like to know your opinions on how would you model a stateful simulation ...
2
votes
1answer
268 views
Should all functions be fully self-contained (is it bad practice to share a variable between functions)?
There are two ways to do the same thing (pseudo code)
Define databaseHandle in the parent function, and use it as a global in this scope:
function API() {
function openDatabase() {
...
1
vote
1answer
261 views
What aspects of Haskell led to its rise in popularity among experts?
20 years ago, the Functional Programming world was all about Lisp and Scheme. When I went to college in 2001, my Fall Semester Freshman CS 101 course was taught in OCaml.
However, these days the ...
0
votes
1answer
110 views
Haskell types for functions
I don't understand the answer to this question:
Q: Can Haskell find a type for the function selfapply defined by: selfapply f = f f
A: The function selfapply is not typeable in the simple system of ...
1
vote
1answer
239 views
What is the “->” symbol called?
I have seen the -> operator/symbol in Java 8 predicates recently and wondered what its name is. I know that it is used in lambda expressions, but I know that the symbol for lambda is λ, so that's ...
2
votes
2answers
104 views
Dealing with states in a immutable approach [closed]
I want to know how to deal when you have some states in a program, with functions that depends on them, but with a immutable approach. I read some examples and questions, but all focus in a small ...
0
votes
3answers
136 views
Why python function programming functions are not collection methods? [duplicate]
In other words, is there a Python design related reason for it to be so?
Functions like map, filter, reduce etc. are just plain functions.
Is it just a poor design choice (if it is a good one, ...
9
votes
2answers
369 views
Maintaining State without assignment
I am learning functional programming and I have trouble understanding how some particular scenarios are implemented without the use of assignment. The following simple problem pretty much sums up my ...
0
votes
1answer
183 views
Advantages of the imperative style over the functional style [duplicate]
There's a lot of hype over functional languages right now, and I've spent the last year studying Haskell as my intro to FP as a result. Seeing the advantages FP provides is easy (such as referential ...
4
votes
1answer
146 views
Pattern matching against two similar types
What is the best way to handle pattern matching in the following situation?
sealed trait Metadata
final case class Metadata1() extends Metadata
final case class Metadata2() extends Metadata
final ...
0
votes
0answers
31 views
Accessing intermittently available resources with transactions and post-access cleanup in a generalized, functional, composable way
The following psuedo-code illustrates what I'd like to be able to do. Is there a way to accomplish something like this in Scala?:
trait IntermittentlyAvailableResource
trait ...
0
votes
1answer
68 views
FP: Capturing the characteristics of a process which blocks, causes side-effects, and may fail
I have a driver function modifyFile that interacts with many sources in the outside world (e.g. HTTP, filesystem). Let's say the code is as such:
def downloadFile(from: String, to: String): Try[Unit]
...
11
votes
2answers
327 views
Is higher-rank parametric polymorphism useful?
I'm pretty sure everyone is familiar with generic methods of the form:
T DoSomething<T>(T item)
This function is also called parametrically polymorphic (PP), specifically rank-1 PP.
Let's ...
11
votes
3answers
3k views
What is the name of a function that takes no argument and returns nothing? [closed]
In Java 8's java.util.function package, we have:
Function: Takes one argument, produces one result.
Consumer: Takes one argument, produces nothing.
Supplier: Takes no argument, produces one result.
...
8
votes
2answers
233 views
Is it common practice to transform requirement specifications into predicate logic for functional programming?
I've recently been assigned to work on a small project which is being implemented in Haskell. Coming from an OO/imperative background, I'm used to converting requirements/user-stories into use-cases ...
2
votes
0answers
143 views
What is the relationship between “flux” and pure functional reactive programming?
Flux, as far as I understood, is a technique about dealing with the dataflow of an application unidirectionally, keeping state isolated from the rest of the program in read-only, self-contained ...
5
votes
3answers
486 views
Is Functional Programming a viable alternative to dependency injection patterns?
I have recently been reading a book entitled Functional Programming in C# and it occurs to me that the immutable and stateless nature of functional programming accomplishes similar outcomes to ...
2
votes
1answer
86 views
FP and board game state
I wanted to implement the game of Tic Tac Toe using a functional language (in my case, Scala) but I'm unsure how to go about managing the board game state after each player makes their move.
I ...
1
vote
1answer
129 views
Functional Programming style: How to write functions - explicit currying, implicit currying or lamdas?
So I have been using F# for a while and studying a bit of Haskell on the side and I have realized I could rewrite the exact same function one of three different ways.
Either with implicit currying, ...
-1
votes
2answers
245 views
Is functional language without runtime written in C possible?
Every functional language that compiles to native code relies on quite big runtime written in C programming language (well at least ones that I know of, for example Haskell, OCaml, Gambit/Chicken ...
-1
votes
1answer
81 views
Significance of '__name__ ' attribute in python
1)
Below python code,
>>> def f():
return
creates a function type object which has __name__ attribute with value 'f' which looks fine.
But,
2)
Below line of code,
>>> x = ...
6
votes
3answers
804 views
Can “higher order function” feature allow/maintain abstraction and encapsulation?
Below is the function repeat written using a functional paradigm, such that when called as repeat(square, 2)(5) it will apply the square function 2 times on the number 5, something like ...
1
vote
0answers
110 views
How and where to make global function file in jsp sevlet web application
I am making a website in Servlet&JSP. I am looking for good way to make a specific function file from where I can call and declare my common functions. If I made a java file function. Java, so is ...
-4
votes
4answers
138 views
Does this python program obey functional paradigm?
Below is the hailstone sequence program considering the rule of thumb in functional programming.
The simple rule of thumb is: if you can replace any expression, sub-expression or subroutine call ...
4
votes
1answer
111 views
How would I isolate changes to mutable state if I need to run two queries to get the final result?
I'm working on some code that takes search criteria from a Rest API and uses it to query a remote API to return results. As an exercise, I wanted to try to separate all state changes to one place, as ...
1
vote
1answer
121 views
How do I enforce 'referential transparency' in this program?
Below is the python program written to follow the rule of thumb in functional programming.
The simple rule of thumb is: if you can replace any expression, sub-expression or subroutine call with ...
0
votes
1answer
102 views
Abstracted better? Data driven string creation
I am trying to post this question neutral of programming language so it helps the widest audience. But for those who must know, I am using Objective-C and iOS frameworks.
The background:
I have a ...
0
votes
1answer
61 views
Dealing with error in data - Idempotent approach
A prior question had an answer that interested me from a design perspective. I work in geospatial data and occasionally have to deal with voids when I read these binary files into my product. What is ...
16
votes
6answers
1k views
Does functional programming increase the 'representational gap' between problems and solutions? [closed]
Since machine language (e.g., 0110101000110101) computer languages have generally evolved to higher forms of abstraction, generally making it easier to understand the code when it's applied to a ...
0
votes
1answer
55 views
Choose approaches for updating an object
Say I have a simple object created by from user input:
var input = { url: 'http://example.com/', path: 'abc', user: 'adam' };
And I am to write function(s) that update url and path properties ...
2
votes
1answer
118 views
How to make an interpreter for a stack of Free Monad Transformers
I like the idea of using Free monads to "purify" code and I've used it in some simple scenarios. However, I can't seem to figure out how to write an interpreter for a Free monad transformer. In ...
6
votes
1answer
171 views
Is the use of DSLs in a state monad a good approach to building complex stateful computations?
First, sorry if that title makes no sense. I am a little out of my depth here with the terminology.
So, imagine that I'm writing a text editor in Haskell. For the purposes of this question, let's ...
0
votes
1answer
199 views
What kind of reputation does Java 8 have among “enterprise” companies? [closed]
Are the new, functionally-inspired features of Java 8 well-regarded within the enterprise development community? Have they been adopted by large companies? Have coding standards been updated to ...
14
votes
9answers
2k views
What would be good factual arguments to convince high level management to consider functional programming? [closed]
There are tons of "theoretical" arguments for why functional programming is a Good idea (too many for that to have stayed as an open question, and correctly so).
However, most of them are arguments ...
2
votes
3answers
234 views
Declaring lambdas in Java8
What would be the best practice to declare lambdas in Java8 code? How it was designed to be used?
For example, let's say that we have a method that accept a Function. I want to provide function ...