I think that Functional Programming is almost as much of a hoax as Artificial Intelligence. I have yet to see an interesting piece of code that comes from these FP people.
All code is just a permutation of same 256 numbers.
Name:
Anonymous2015-03-04 14:49
>>4 I heard they make CPUs that can use 16 bits now.
Name:
>>22015-03-04 17:16
Keep thinking that. You just keep thinking that and everything's gonna be fine.
Name:
Anonymous2015-08-10 4:46
I agree that FP is a hoax. There was a big shift in computer science and programming language theory when FP took over. "We shouldn't be researching this because it's harmful" and "things we think we understand are more scientific than things we don't want to" are not science. There's nothing "more scientific" or "more mathematical" about Haskell and other FP languages than any other programming language.
Name:
Anonymous2015-08-10 7:02
I bet you can't do this in whatever pathetic non-functional language you use.
loeb x = fmap (\a -> a (loeb x)) x fact n = loeb fact' n where fact' 0 = return 1 fact' n = do f <- ask return $ n*f (n-1)
>>14 I suspected that. So that's the true beauty of lazy evaluation?
Name:
Anonymous2015-08-10 17:51
>>15 Of course, if we had mutable state, we'd only need 3 variables. It seems that 'fibs 1000' with either approach would take a lot o space (in the former, in the form of stack space, in the latter in the form of cache memory).
Name:
Anonymous2015-08-10 18:43
>>16 Using only 3 variables gives you no memoization though, so { fibs 1000; fibs 1001 } will recompute the same thousand values two times.
>>1 Eating shit is the most beautiful thing you can ever do <3 you strip all materialistic things attached to you and you become one with nature: you and your own shit :)
Playing with scat at this level, actually makes you a better person, or so I want to believe! Why would you ever eat fake shit? It’s so wonderful to feel its smell and taste and texture, there’s nothing like it!
FP helps in the large, and in the complex. It doesn't help make always things fast, though sometimes it does. People are too stupid, and working on to small of toy projects to even consider what they don't know.
Keyboard punching versions of burger flippers.
Name:
Anonymous2015-08-13 18:08
dubs
Name:
Anonymous2015-08-13 23:36
Scalable Enterprise Solutions help in the large, and in the complex. It doesn't help make always things fast, though sometimes it does. People are too stupid, and working on to small of toy projects to even consider Design Patterns they don't know.
Keyboard punching versions of burger flippers.
Name:
Anonymous2015-08-14 0:11
Such functionality! qsort@r$[] H,@T = @T.keep{?<H}^r,H,@T.skip{?<H}^r
Name:
Anonymous2015-08-14 3:59
>>23 >>21 means FP helps deal with large codebases with high complexity. If English isn't your first language I can see how you might be confused. The proper way to phrase your post is to say Scalable Enterprise Solutions helps make your codebase large and complex.
Name:
Anonymous2015-08-14 4:52
>>25 Functional programming is useful for functions of every complexity: Factorial, Fibonacci, the Ackermann function, the dreaded Collatz function, and even the most evil of programming: Hello World.
Name:
Anonymous2015-08-14 8:38
>>25 FP helps deal with high complexity by restricting what you can do to only simple things. Sometimes a complex problem needs a complex solution and FP just can't do it properly.
...like in a video game or other types of simulations. It's most efficient to just update all the entities in place in a loop. You could make a copy of the entire world every frame and this could be optimized into something better by a very, very clever compiler, but there are other limitations as well. With mutations you can adopt models where components broadcast changes to other components. This isn't so easy to model in a functional way. And then there's concurrency used in ways other than parallel evaluation, like producer consumer pipes. All of these techniques invoke complexity but they are still very useful or the only way to go about solving some problems.
Name:
Anonymous2015-08-14 20:39
>>29 FP never involves copying everything, duncecap. Besides, your defective understanding of concurrency won't help you go multi-core with complex simultaneous interactions in the game world.
Go choke on a javabean.
Name:
Anonymous2015-08-14 22:27
>>30 Functional data structures involving making copies of all data that must change. In a simulation, all entities change every frame, so all will be copied. I see you are talking about the ease of implicit parallelization again. There are other uses for concurrency outside of parallel evaluation, and you can't access these using pure FP.
Name:
Anonymous2015-08-14 22:28
This is a reminder to keep ideology inside of religious institutions and outside of your programs.
You won't win any arguments by holding up that shit as an example.
Name:
Anonymous2015-08-15 3:14
Clojure is not a LISP.
Name:
Anonymous2015-08-15 4:51
>>34 ...and you wont win any arguments by bringing up clojure.
Name:
Anonymous2015-08-15 7:11
>>36 >>31 is describing Clojure you moron. It's not even a Lisp, let alone a typed FP language.
Name:
Anonymous2015-08-15 7:42
>>30 You're still not making a point. Many simulation libraries double-buffer their world, or fine-grainedly allocate new numeric structures as they mutate.
FP parallelism tends to be a superset of mutating parallelism (including pipelined message passing), not a subset. The parallel situations FP can tackle are the hard ones. Have fun pissing about with the simple ones.
Name:
Anonymous2015-08-15 8:07
>>37 You seem to lack the ability to think about concepts. You can only think of instances of the concept in the real world. >>31 could have described a host of things. It's your choice if you want to restrict your attention to a shitty implementation of part of the description.
You're still not making a point. Many simulation libraries double-buffer their world, or fine-grainedly allocate new numeric structures as they mutate.
You're point being? It's still not pure functional as far as the program is concerned. The algorithm may be pure but the programming language thinks you are mutating the old buffer.
(including pipelined message passing)
These are provided as primitives. You can't build new primitives for concurrency in the language. You are stuck with what the implementaiton gives you, and if you need something better, you need to extend the implementation in an impure language.
The parallel situations FP can tackle are the hard ones.
FP just makes parallel dead easy. Then again, what kind of parallel computing are we talking about? FP is good for multicore shared memory situations but it's not so suitable for a cluster of computers that communicate over a LAN. At that level message passing which translate to packets becomes more suitable, and this is not pure functional. Computers change their state as they carry out computations and talk to one another. So whether or not FP alone can help you depends a lot on what problem you are tackling and what computational resources you have at your disposal. The intelligent way to go about solving the problem is to consider all options and techniques. Find an abstraction that suits the restrictions of your computational resources and can express you problem you want to solve. But if you are restricted by ideology, you will only consider the techniques allowed by your ideology. This is a reminder to keep ideology inside of religious institutions and outside of your programs.
Name:
Anonymous2015-08-15 8:52
real world implying the real world is this illusionary physical existence