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 tháng trước·1 comments

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

github.com
4 points·by amazing42·3 tháng trước·0 comments

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

github.com
85 points·by amazing42·4 năm trước·44 comments

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

github.com
20 points·by amazing42·4 năm trước·3 comments

comments

amazing42
·2 tháng trước·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 năm trước·discuss
Thanks for bringing this up. Now you can use cmake find_package with it.
amazing42
·4 năm trước·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 năm trước·discuss
Yeah, that is super cool feature of compiler explorer compared to other online compiler.
amazing42
·4 năm trước·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 năm trước·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 năm trước·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 năm trước·discuss
Yeah. That is supported.
amazing42
·4 năm trước·discuss
Thanks for your comment!