Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ericbb
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
ericbb
8y ago
I think it's "Play": https://fonts.google.com/specimen/Play
2.
▲
by
ericbb
9y ago
(Replying to my own comment because I don't see a way to edit it.) Another question I have is about recursion. Browsing through the code a little bit, I see loops and comprehensions are often used but I'm not sure I've seen a
3.
▲
by
ericbb
9y ago
> Maybe I'll post more tomorrow, if anyone is still around. I can only speak for myself but I will definitely be around to read another post if you write one. The design is fascinating and I'm very excited to see a new language
4.
▲
by
ericbb
9y ago
Here's one I made: http://norstrulde.org/ilge10/ The language is based on Scheme and Common Lisp. The instruction set is derived from one described in the book Paradigms of Artificial Intelligence Programming by P
5.
▲
by
ericbb
9y ago
Thanks for the detailed response! My point was that the beginning of foo() is compiled to the following (by my compiler): push rbp mov rbp,rsp lea rax,[rbp+0x10] mov QWORD PTR [rbp+0x10],rax Instead of passin
6.
▲
by
ericbb
9y ago
Haven't you misinterpreted "pass by reference" as "pass on the stack"? (In the following program, I'd say that x is passed on the stack but not passed by reference.) #include <stdio.h> #include
7.
▲
by
ericbb
9y ago
Related: Computation and State Machines by Leslie Lamport ( https://www.microsoft.com/en-us/research/publication/computa... ).
8.
▲
by
ericbb
10y ago
For people reading this thread who want to better understand the distinctions between files, file descriptions, and file descriptors, I recommend Michael Kerrisk's book The Linux Programming Interface, which has great coverage of this
9.
▲
by
ericbb
10y ago
With the C-c issue specifically, I don't think that emulator throughput is the most likely culprit. It could be that the emulator is not handling inputs fairly: maybe it tries to process all available input from the pseudoterminal befo
10.
▲
by
ericbb
10y ago
I think that M-expressions are quite interesting but I'll just make a few concrete points here. > if we want (quote x) it looks as if we have to write: ... quote[x] I think that you could just write X in that case. Uppercase text wa
11.
▲
by
ericbb
10y ago
When I mentioned "general recursive functions", I was thinking about systems that define functions using a system of functional equations rather than using a lambda term. Example: odd 0 = False odd n = even (n - 1) e
12.
▲
by
ericbb
10y ago
> `lambda` and function application alone are Turing-complete, as McCarthy would have known. The credit here belongs with Turing and Church, not McCarthy. `atom`, `cons`, `car` and all the rest are just icing on the cake of the lambda ca
13.
▲
by
ericbb
10y ago
I like this one even better: $ cat test.c void _start(void) { __asm__( "movabsq $6278066737626506568,%rax\n\t" "movq %rax,-32(%rsp)\n\t" "movl $1684828783,-2
14.
▲
by
ericbb
10y ago
I always use dynamic linking but I thought it'd be fun to try making a small, static hello-world. The following assumes x86-64 Linux (and is a total hack that "works for me" NO WARRANTY!). $ cat test.c static int sy
15.
▲
by
ericbb
10y ago
Yes, I think I see your point. If I may put it in my own words, I think you are talking about "dynamic recursive activation" throughout this thread. I don't mean to disagree with the point you are making! It's a valid po
16.
▲
by
ericbb
10y ago
That's an excellent question! :) In my language, there is no special global scope for variables; every program is basically one giant (extended and sugared) lambda calculus expression. I do use lambda-lifting so that in the C code I ge
17.
▲
by
ericbb
10y ago
Matt Might's site has some pages on this topic: http://matt.might.net/articles/books-papers-materials-for-gr... http://matt.might.net/articles/intro-static-analysis/ http://ma
18.
▲
by
ericbb
10y ago
I definitely struggled to find a satisfying approach to recursion in my own current language project. What I'm doing right now is passing the closure value of the callee as a hidden first argument to every call. Nonrecursive functions
19.
▲
by
ericbb
10y ago
I'm not sure what you are trying to achieve by using the infinite loop. There's a more direct way. void free_circularly_linked_list(struct node *head) { struct node *a = head->next; while (a != head) {
20.
▲
by
ericbb
10y ago
I was surprised to read that x64 apparently doesn't allow pushing or popping 32-bit values. I have a language that uses 32 bits as the basic unit for all values and I'm working toward x64 code generation. Should I just promote val
21.
▲
by
ericbb
10y ago
See the RISC-V User-Level ISA Specification v2.0 [1]. It's more detailed but still fairly easy reading. [1] http://riscv.org/specifications/
22.
▲
by
ericbb
10y ago
That's funny. I was thinking isomorphism because you postulate an inverse, which homomorphisms don't always have. But the identity doesn't depend on f being invertible. You could just have a rule: If f is a homomorphism with
23.
▲
by
ericbb
10y ago
This approach is strongly reminiscent of abstract algebra; for example, the Map-Reduce Transformation example seems to be(?) justified exactly when f is an isomorphism over r. I've been thinking along somewhat similar lines but I'
24.
▲
by
ericbb
11y ago
Here's one that might interest you. Generating Good Syntax Errors http://research.swtch.com/yyerror
25.
▲
by
ericbb
11y ago
I don't immediately see why he is not just using NULL for nil but Interim is nonetheless more conventional than it may seem. It does use nil for '() (see [1]) and it evaluates (car nil) to nil and (cdr nil) to nil just like Common
26.
▲
by
ericbb
11y ago
I was thinking that some people would want to figure it out for themselves so I didn't want to spoil the challenge for them... I kind of hoped someone else would post the solution. Anyway, here is a solution: http://play.gol
27.
▲
by
ericbb
11y ago
Ah, perfect. Thank you.
28.
▲
by
ericbb
11y ago
By "rationale" I was thinking more along the lines of "here is the reason we chose to do it this way" not just "here is the way we chose to do it".
29.
▲
by
ericbb
11y ago
Well, you could take the position that types that permit modification should not be allowed as keys but then you would not allow arrays as keys, which Go does allow. Check this out: http://play.golang.org/p/kocW1BjTco
30.
▲
by
ericbb
11y ago
This trick fits more into the "prank" category. package main import "fmt" // <Add one short line of valid Go code here> func main() { var n int = 1 fmt.Println(n
More ›