times (n+1) m
is invalid.If anyone is trying out the tutorial and gets the same error, replace that definition of "times" with
times n m = m :+: (times (n-1) m)
and you should be good.724 karma · joined August 23, 2010
times (n+1) m
is invalid.If anyone is trying out the tutorial and gets the same error, replace that definition of "times" with
times n m = m :+: (times (n-1) m)
and you should be good.There is very little evidence for this conjecture, but Penrose and Hameroff are convinced. Make sure to keep Hameroff's bias in mind when reading this paper...
Talk about scary...
So, D-Wave may be selling an expensive simulated annealing hardware implementation, rather than a quantum computer.
I've used implicit params in my toy compiler code. While it somewhat simplified the structure of the code, I could have easily written the program without them.
[1] http://www.haskell.org/ghc/docs/latest/html/users_guide/othe...
The reason why his mechanism cannot create thrust is in the linked article: the 2nd Law of Thermodynamics. Unless there is evidence that the boat suspends the laws of physics, this is the end of discussion.
It's possible that CIQ is getting keystroke information, but only storing metadata (character counts, number of corrections, etc). But, without more evidence, it's best to be wary. I think John raises a valid point; crack open a debugger, disassemble the .dex, start a network sniffer. Find out what is happening, don't just assume.
Edit: fixed minor typo.
[1] http://news.sciencemag.org/scienceinsider/2010/08/harvard-de..., via Wikipedia
Neuroscience can shed light on the philosophical study of free will via empirical investigations, specifically the study of human brains. After all, if a philosopher wants to describe a property of reality, it must submit to empirical results. Philosophers can abstract away from reality if they wish, but they should come clean and rename themselves logicians.
I haven't found any literature to suggest that consciousness thru anesthetic is the case. I don't deny that meditation may give you the impression that you have reached "deeper" levels of consciousness, but I don't think your conclusions are justified by the evidence.
A simple book that will help you get it, is "How the Mind Works" by Steven Pinker. Science assumes that consciousness depends on the brain, since that assumption explains the observations. What's more, we take assumptions for facts once we have enough consistent observations to overcome the biases of reasonable people.
In fact, your broad statement isn't true. Consciousness does depend on having a physical brain in a certain state of development, and depends upon a "normal" chemical environment surrounding that physical brain (ie, no anesthetics). There are autonomic functions in the brain that absolutely don't depend on consciousness.
Commonly referred to as the Gang of Four (or GoF) book, due to the four authors: Gamma, Helm, Johnson and Vlissides.
Regarding your first point, your referenced article makes a misstep of its own, conflating the implementation with the semantics. From the article: "Do some folks believe we’re still doing what Church did, i.e., to encode all data as functions and build all types out of ->?"
From a semantics perspective: Yes. If it makes it easier to reason about, then treat variables as nullary functions. In the Spineless, Tagless G-Machine paper, both values and thunks are represented as closures, which may or may not be evaluated. For example:
infiniteSeries :: [Integer]
infiniteSeries = iterate (1+) 1
Is this a variable or a function? Having a special case for Double ("a closure containing a value") versus [Integer] ("a closure containing a thunk") is a distinction only important once the implementation becomes an issue (ie, lazy evaluation affecting memory usage).As for your second point, typeclasses can include partial implementations. For example, the Eq typeclass [2] has a minimal definition required, either (==) or (/=), as one can be defined in terms of the other.
[1] research.microsoft.com/pubs/67083/spineless-tagless-gmachine.ps.gz
[2] http://haskell.org/ghc/docs/latest/html/libraries/base/Prelu...
If it is the former, then I worry. Software transaction memory is hard to get right in languages without explicit and trustworthy annotations for side-effecting code (ie, types) [1].
1) http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetros... (currently down, but Google has a cached copy)
Code is always the most fundamental "description" of a program, but all the methods have some descriptive power. The process of having two separate descriptions should lead to a higher quality output, as divergences between the two show a possible misunderstanding of the problem, and hence a source of bugs.
Saying "no" to language suggestions is not a bad thing, it all depends on the goals of the language and the philosophy of the language authors. Perhaps Yegge should try and understand the reasons why patches aren't accepted, rather than force their acceptance via his soapbox.
Long story short: take this paper with a pretty large grain of salt.
Trying Prolog, Erlang, Haskell and Scala in the space of 4 months while trying to solve simple problems (Project Euler comes to mind) should allow one to find a language approach that works. Object-oriented, lazy functional, concurrent or logical, one of those might stick. And if not, there's Lua, Ruby, Groovy, C#, Scheme, Perl6, Python3, Forth, C++, Brainfuck, ...
Each language has a core idea or two that could fit someone's personality. Then, the next year could be spent learning that language in-depth, as you mention. Finally, build upon that experience and re-evaluate the orignal list of languages; JavaScript looks better after Lua, Haskell is Scheme with Prolog-like pattern matching and a generic type system like an advanced C++, Forth and Brainfuck are about a simplicity even beyond Scheme's, etc.