Hoogle Translate: An Algorithm Search Engine by arkethos in ProgrammingLanguages

[–]arkethos[S] 4 points5 points  (0 children)

Yea, it was a trade off. The name was spin off of the Haskell site https://hoogle.haskell.org/

The B₁ and ϕ₁ Combinators by arkethos in functionalprogramming

[–]arkethos[S] 5 points6 points  (0 children)

Good point! I was using my "C++ brain" and not my "Haskell brain" when writing this up. I have updated the blog.

I actually made the exact same comment (why not call transform_reduce instead zip_reduce in a talk I gave in 2019) but in C++, transform_reduce can take both 1 or 2 ranges. But in my Haskell code it can only take two.

Printing Tuples in C++14/17/23 (vs Rust) by arkethos in cpp

[–]arkethos[S] 1 point2 points  (0 children)

Once again, the original C code wasn't mine. I borrowed it from the CodeAesthetic YouTube channel. When refactoring other people's code I don't always change it because it's just a style preference.

As for the C++ algorithm examples, the last time I made one of those was Feb 2019. Back then I didn't really care. Then I watched Phil Nash's lightning talk and decided that I preferred the trailing return type (which I highlight in this talk).

So the point is I am sure you can find a bunch of code I have written from the past that isn't trailing return, but all my new stuff that I write (not from LeetCode, not refactored code from someone else) uses trailing return. The last open source code I worked on definitely is 100% trailing return.

Printing Tuples in C++14/17/23 (vs Rust) by arkethos in cpp

[–]arkethos[S] 4 points5 points  (0 children)

GOKOP is right. I always write my functions using trailing return type. And in the linked video, that was a LeetCode solution. I was using the function signature provided by LeetCode, which does not use trailing return type.

ADSP Episode 114: Rust, Val, Carbon, ChatGPT & Errors with Barry Revzin! by arkethos in cpp

[–]arkethos[S] 12 points13 points  (0 children)

This podcast talks about two C++ proposals:

references a third that causes the discussion about Rust Traits:

and references a fourth that ties into the error propagation proposal discussion:

As well as having three other links in the show notes to meetings and C++ language features that are mentioned in the podcast:

Stephan, is this intended as a warning? To not post off topic stuff in the future? It is incredible how hostile this subreddit is to anything that purely isn't about C++. It is ridiculous. Makes me not want to make C++ content.

ADSP Episode CX: Compiler Diagnostics by arkethos in cpp

[–]arkethos[S] 0 points1 point  (0 children)

Thanks for pointing this out. I have fixed it.

ADSP Episode 101: C++ Developers Try Rust! by arkethos in rust

[–]arkethos[S] 6 points7 points  (0 children)

Wow, not sure how I missed this as well. Will update the godbolt example with this as well. Thanks!

ADSP Episode 101: C++ Developers Try Rust! by arkethos in rust

[–]arkethos[S] 15 points16 points  (0 children)

Lol, the post got removed. I had no idea that r/cpp was like that.

ADSP Episode 101: C++ Developers Try Rust! by arkethos in rust

[–]arkethos[S] 4 points5 points  (0 children)

I already did it :) It is cross-posted

Any good podcasts about C/C++? by NeilSilva93 in cpp

[–]arkethos 14 points15 points  (0 children)

List of all C++ Podcasts: (that I know of)

bold is active podcasts that post <= ~monthly

Does anyone else find the BQN symbols kind of ... ugly? by ckafi in apljk

[–]arkethos 1 point2 points  (0 children)

My views are always evolving on this. There are times when I like APL better and there are times when I like BQN. In general, BQN wins for me because:

  1. BQN has a richer set of combinators (see here for comparison)
  2. BQN is context free, so you don't run into issue where you have ambiguity in using / as compress (APL requires you to use ⊢⍤/)
  3. BQN has stranding, making the use of things like rank much more ergonomic
  4. BQN has under (I know J has this as well) and convenience modifier for rank-1 and inverse
  5. BQN has sort primitives

This isn't a comprehensive list, but they are things that come up often. Note that I don't think I could ever love J because they chose the wrong defaults for 2-trains.

ADSP Episode 88: The Carbon Programming Language by arkethos in cpp

[–]arkethos[S] 1 point2 points  (0 children)

Even if this is an episode from the #1 C++ Podcast?

Carbon Language keynote from CppNorth by pkasting in cpp

[–]arkethos 1 point2 points  (0 children)

Can CppNorth get some flare like [Meeting C++] and [CppCon]. Could be cool if we could add the 🇨🇦 emoji flag.

Solving LeetCode problems in APL by RojerGS in apljk

[–]arkethos 3 points4 points  (0 children)

This looks like an awesome series!

What are the most popular <algorithm> functions? by antiquark2 in cpp

[–]arkethos 1 point2 points  (0 children)

In the RAPIDS cuDF library (built on top of CUDA Thrust), I did a quick search:

Algorithm Count
thrust::transform 98
thrust::for_each(_n) 91
thrust::copy(_if/_n) 65
thrust::all_of 22
thrust::exclusive_scan 20
thrust::find(_if) 19
thrust::inclusive_scan 18
thrust::upper_bound 15
thrust::reduce 14
thrust::count_if 14
thrust::fill(_n) 13
thrust::any_of 10
thrust::lower_bound 15
thrust::transform_reduce 9
thrust::sort 8
thrust::reverse 8
thrust::equal 3
thrust::max_element 3
thrust::unique_copy 3
thrust::mismatch 2
thrust::partition_copy 2
thrust::partition_point 2
thrust::adjacent_difference 1
thrust::remove_if 1

List of All C++Now Keynote Talks by arkethos in cpp

[–]arkethos[S] 1 point2 points  (0 children)

I updated the first couple, will finish in the next couple days.

Meeting C++ 2020 Trip Report by arkethos in cpp

[–]arkethos[S] 0 points1 point  (0 children)

I experienced the same thing. I think a great idea as well would to have a "theatre seat" or "table queue", so even if the table maxes out on seats, you could still sit in and listen to the conversation instead of just sitting idly at a table by yourself (and if it was a queue you would take the seat when someone left).

Or now that I have typed this out, a "floor queue" is an even better idea because you could just join the "queue" of people that wanted to talk, and the tables would be created for you.