Live data from Hacker News

Tao: A statically-typed functional language

github.com

91–98 of 98 posts

Re: Tao: A statically-typed functional language

#91

Earlier quoted context omitted.

Hi, do you have a link to your language? You teased it quite a bit and I'm very curious to learn much more.

I didn’t intend to have the conversations I’d had on HN to appear like teasers (although that is a cool thought). I don’t have any public write ups on it or a public distribution point. It was pretty heavily argued that I was being unreasonable about not releasing, at a minimum, a blog about it for ‘fear’ of unwanted criticism. I don’t have a GitHub (all my code is proprietary for my job so it is never released) so I…

Or you can just link a scribd or google docs link with details about the language's design...until you decide on where your blog will be.

Re: Tao: A statically-typed functional language

#92

Earlier quoted context omitted.

I didn’t intend to have the conversations I’d had on HN to appear like teasers (although that is a cool thought). I don’t have any public write ups on it or a public distribution point. It was pretty heavily argued that I was being unreasonable about not releasing, at a minimum, a blog about it for ‘fear’ of unwanted criticism. I don’t have a GitHub (all my code is proprietary for my job so it is never released) so I…

Or you can just link a scribd or google docs link with details about the language's design...until you decide on where your blog will be.

That’s not a bad idea, and it would certainly be faster than working out where to host a blog.

Re: Tao: A statically-typed functional language

#93
post #90

Earlier quoted context omitted.

> does numerical destructing require that one of the terms be a constant? Yes, the general pattern is `n + K`. I'm looking to expanding this to other operations in the future too. > Did you mean arg -> f ? Yes. I changed the syntax recently, but forgot to change the README. Thanks for pointing this out!

> Yes, the general pattern is `n + K`. OK, so what is the intended benefit of y ~ x + 1 over x = y - 1 ? I can see an obvious benefit if I can write y ~ x + z where neither x nor z is a constant and the resulting semantics invoke some kind of mathematical constraint management system or backtracking search a la Prolog, but if I'm constrained to write things that can be trivially transformed into a binding I don't see…

I think my other answer here should provide an answer: https://news.ycombinator.com/item?id=31989227

Re: Tao: A statically-typed functional language

#94
post #90

Earlier quoted context omitted.

> Yes, the general pattern is `n + K`. OK, so what is the intended benefit of y ~ x + 1 over x = y - 1 ? I can see an obvious benefit if I can write y ~ x + z where neither x nor z is a constant and the resulting semantics invoke some kind of mathematical constraint management system or backtracking search a la Prolog, but if I'm constrained to write things that can be trivially transformed into a binding I don't see…

I think my other answer here should provide an answer: https://news.ycombinator.com/item?id=31989227

Ah, that makes sense. Thanks!

Re: Tao: A statically-typed functional language

#95
post #55

What were the series of resources or readings that you did to help you create Tao?

There wasn't really any single resource I read. Frustratingly, I find it quite difficult to read research papers (I'm told it's a skill acquired with practice, but it's something I've never gotten into). Most of the implementation is the product of several rewrites and false-starts, along with the occasional hint I've read about here or there on the web.

Ah, a trail of even just the web articles you read that was helpful would be helpful, as part of people looking to Tao for inspiration. Consider writing them down in the wiki part of the repo as you go along going forward!

Re: Tao: A statically-typed functional language

#97

Earlier quoted context omitted.

Can you expand on what disappointed you about Haskell. I’m not looking to convert you or anything, just curious.

Hi, do you have a link to your language? You teased it quite a bit and I'm very curious to learn much more.

I’m not sure if you are checking this random post, but I talked myself into doing some writing on the language (in a presentable format as opposed to my usual .txt file scribbles). Since you are the only person who actively asked for details/info what kind of things would you want to read about? I could write a large amount about my particular beliefs about software, type theory, category theory, and language design, but I would end of writing unconnected ideas all over the place. So, I am trying to focus on presenting the language and using it as an example of the implementation of those topics and a jumping off point for further descriptions of ideas. I think I’m down to two primary options for presenting some general info as a starting point:

a) doing a `front page` type thing laid out like the why-Koka page for the Koka language [1]. (essentially a brief section about each foundational theoretical aspect) Then having links put in for more theoretical/formal information as I write it up.

b) just doing narrative style ‘blog’ post writings about whatever concepts people may want to hear about.

I’m leaning towards option A, but without quite such a strong emphasis on how to use the language and more focus on what the language is. But if you think it would be more informative to just read randomly connected blogs let me know. I’ve never done this before so I don’t have a clue what other people find interesting.

1 - https://koka-lang.github.io/koka/doc/book.html#why

Re: Tao: A statically-typed functional language

#98

Earlier quoted context omitted.

In a previous revision of the language, I did! ( https://github.com/zesterer/tao/tree/old ). I decided against it because, in short, I find the trailing delimiters to be quite ugly. Because this is purely a personal project, I'm thankfully not constrained by such mundane concerns as "ergonomics" (unless such concerns relate to me while I'm working with it). I think Pythonic syntax is probably the way to go long-term…

Personally I'm a big fan of Julia's syntax here. Indentation-insensitive with the use of the word "end" as the terminator for all types of block. In practice you can lay it out like Python, and the "end"s help you keep track when e.g. you need to place a single expression after some deeply-nested blocks.

Is indentation actually necessary to parse a block? I think if you have a well defined terminator (a literal keyword token, such as `end`), indentation can just be a function of an autoformatter with no indentation constraints on syntax.
Post reply on HN