HackerTrans
TopNewTrendsCommentsPastAskShowJobs

amazing42

no profile record

Submissions

Show HN: The Name in the Bracket (a free book on naming tensor dimensions)

einlang.github.io
2 points·by amazing42·2 bulan yang lalu·1 comments

Show HN: Einlang, a math-intuitive language with lots of good stuff

github.com
4 points·by amazing42·3 bulan yang lalu·0 comments

Show HN: Match(it): A C++17 pattern-matching library with lots of good stuffs

github.com
85 points·by amazing42·4 tahun yang lalu·44 comments

Show HN: Mom, can we have (Haskell flavored) post-modern C++ at home?

github.com
20 points·by amazing42·4 tahun yang lalu·3 comments

comments

amazing42
·2 bulan yang lalu·discuss
The book works through what happens when tensor coordinates have names the compiler can check, from reductions through autodiff and recurrences. There's a small prototype language (github.com/einlang/einlang), but the book is the main thing.
amazing42
·4 tahun yang lalu·discuss
Thanks for bringing this up. Now you can use cmake find_package with it.
amazing42
·4 tahun yang lalu·discuss
That is true. Hopefully, adding more static_assert to the lib can fail the compiler early and give more instructive error message.
amazing42
·4 tahun yang lalu·discuss
Yeah, that is super cool feature of compiler explorer compared to other online compiler.
amazing42
·4 tahun yang lalu·discuss
Actually this library (match(it)) is more similar to Racket. You can see there are lots of patterns borrowed from Racket pattern matching, say app pattern and ooo pattern.
amazing42
·4 tahun yang lalu·discuss
Sadly lvariant did not get into C++ language. The library supports pattern matching against std::variant/std::any and class inheritance as a replacement.
amazing42
·4 tahun yang lalu·discuss
The godbolt link is only a simple sample.

Rust does not support view pattern (called in Haskell) or app pattern (called in Racket). And that has been implemented in this library.
amazing42
·4 tahun yang lalu·discuss
Yeah. That is supported.
amazing42
·4 tahun yang lalu·discuss
Thanks for your comment!