Thank you so much. This kind of effort means so much to the both of us.
170 karma · joined October 28, 2016
Thank you so much. This kind of effort means so much to the both of us.
I'm really starting to enjoy Joy, J, FP, and other languages based on a similar combinator-like basis. I'll have to read over Compiling to Categories, because that certainly is something that catches my eye.
"Here's this lovely new functional language!... written in Haskell, using Haskell's entire runtime as a basis."
Lambda Calculus, Turing Machines, etc. are no different in this regard. One has its steps realized in reduction and substitution rules, the other has its steps realized in movements of the head and manipulations of the tape.
You'll need more to disprove my hypothesis. All software is built compositionally, up from smaller pieces. It's why we commonly refer to everything as a "software stack": we can reason about smaller making up larger. If you examine most of the code written today, this very minute, you'll see it's compositional, in the way that larger codebases are built from components.
Neither LC or TMs are "natural ways of thought", they're mechanisms. Turns out that TMs won out not only because they admit an easy physical implementation, but also because they're compositional. I can wire up two TMs and get them to perform operations in sequence, perform conditional branching, etc.
JavaScript is hardly Lisp in a C-suit, but that's beside the point, because C is pretty terrible (despite it being my favorite) regardless of what paradigm you choose. I'm not going to devote much of this comment towards that.
All software is compositional, regardless of the medium, and all computation is purely mechanical, regardless of the model of computation, because unless you want to stare at a lambda expression and infer the value, you need to perform some kind of step-wise reduction. That, after all, was Church's point.
The basis of Lisp is the Lambda Calculus, and a generalization of that gets you term rewriting. Both the basis and the generalization of Lisp admit to requiring a tree (or a graph, in the case of Cons-cells) to get on with the computations, because that's the "state" that you're working with.
The problem is that while these things in the minds of humans are pretty easy to work with, implementing them physically has you rely on things like the RAM model, which, while pretty far away from the Turing Machine, still has machine-like qualities.
That's my argument. We can't really build "Lisp Machines", we can build "Random Access Machines with Lisp Interfaces", because there's no physically implementable version of a tree or graph memory outside of linking randomly-accessible cells.
There are ways of composing Turing Machines much like composing functions to yield higher abstraction levels in the Lambda Calculus. It comes in the form of building up larger forms of instructions out of simpler machines.
I don't think humans think in a LC-like manner, I think we think compositionally: small parts make up big parts, use the parts you make to make bigger parts. Whether those come in the form of a physical machine or an applicative system doesn't matter, what matters is how you string primitives together.
Check this[1] out. This walks you through building up a more usable language out of the rough-and-ready Turing Machine. There are many ways to go about this idea of composition, but this is a good introduction.
https://pdfs.semanticscholar.org/presentation/98e5/6df9c1c30...
When we look at what computation is, physically, we find it's a lot like a Turing machine underneath (physical rewriting systems), albeit with different kinds of structures that are being rewritten.
Anything involving trees/terms in general seems to be rather messy in terms of physical computation, because there's no straightforward way to represent a manipulatable tree regardless of the medium.
Part of the reason TM-like computing devices sprung up is because strings, i.e linear sequences of symbols, are surprisingly easy to represent and manipulate physically. Turing himself appealed to physical intuition in his original paper.
Just my thoughts as a person who's tried to bootstrap his own LC-based computing environment. I did succeed, but I'm not entirely happy with the results.
Polygon is not an unbiased source.
I ended up refunding your game because it just failed to launch on my particular (bare-bones) configuration. shame, I would've loved to play it!
I imagine it must be something wrong with the underlying emulator, but there's no audio output. visuals work, but not much else, which is sad for this bit of interesting code!
it's a demonstration of returning a struct by value...
how is this...
1. multiple return values? 2. costing one "weird input parameter"? 3. worthy of a front-page mention?
I could use adblock, a free and crowd-sourced adblocker, to... block the ads.
YouTube already makes copious amounts of money outside of advertising and Red exclusivity. don't force that kind of an annoyance on people if you expect them to A) use your service or B) not subvert the crap you put in front of them.
there is no argument for ads anymore.
for example: https://news.google.com/newspapers?nid=3yMDF_cvnR8C&dat=1908...
the article is from 1980, not 1908.
http://mindsontoys.com/kits.htm
it's not turing complete, but it goes a long way and is fun to build!
though I agree, tumblr isn't exactly my first thought. :P
it makes me wonder: if you're actively doing research on these modern day areas of conflict and the culture that's in them, would you rather ask for forgiveness or permission when posting your material to a site that monitors material of that nature? and if it was so easy to gain forgiveness, what would stop people from framing said areas of conflict in different lights under the guise of research?
I can't say I'm surprised, but I am surprised at the fact that finally, after all these years, someone finally got down to patching some vulnerabilities in this area.
props to whomever forced Intel's hand.
I wonder what he means by 'blobs'. if he just means every element of the triple can be an arbitrary binary blob, that's kind of cool.