Function Composition in Programming Languages - Conor Hoekstra - CppNorth 2023

  Рет қаралды 7,741

CppNorth

CppNorth

9 ай бұрын

www.cppnorth.ca​
---
Function Composition in Programming Languages - Conor Hoekstra - CppNorth 2023
Most people think of function composition as composing two unary functions together (the B combinator). However, this is only the tip of the proverbial "function composition" iceberg. This talk will be both an introduction and an overview of the world of combinatory logic and combinators. If you have ever wondered what the S, Phi, Psi, or B1 combinators are and why they are so useful, this is the talk for you. And even if you have never wondered that - I promise this talk will be worth your time. It will expand the limits of what you thought was possible with programming languages and give you the tools and knowledge to use combinators in your choice of programming language.
---
Slides: github.com/CppNorth/CppNorth_...
Sponsored By:
think-cell: www.think-cell.com/cppnorth
JetBrains: www.jetbrains.com/
---
Conor Hoekstra
Conor (he/him) is a Research Scientist at NVIDIA working on array programming models and languages. He is extremely passionate about programming languages, algorithms and beautiful code. He is the founder and organizer of the Programming Languages Virtual Meetup, he has a KZbin channel and is the host of two podcasts:
ADSP: Algorithms + Data Structure = Programs
ArrayCast
Conor is also an avid conference speaker. You can find all of Conor's conference talks and podcast appearances (on other podcasts) here github.com/codereport/Content...
---
CppNorth is an annual C++ conference held in Toronto, Canada.
- Annual CppNorth C++ conference: cppnorth.ca/
- CppNorth Twitter: / cppnorth
---
KZbin Videos Edited & Optimised by Digital Medium: events.digital-medium.co.uk
#cppnorth #cpp #programminglanguages

Пікірлер: 20
@c4tubo
@c4tubo 8 ай бұрын
Although the subject matter by itself may not draw much interest, your enthusiasm for it certainly does.
@aMulliganStew
@aMulliganStew 2 ай бұрын
With all humility, not wishing to imply that I have his greatness (or indeed anything more than glints of occasional competence)... Late in his career, Neil Peart took drum lessons -- in jazz. So it might also be for me, coming from a procedural/object-based background (heavy on the former), as I take the plunge into functional /combinatorial. I find it all very intriguing. Thanks to Conor and everyone for the talks.
@michaelteter
@michaelteter 8 ай бұрын
Regarding the light/dark mode change and comment at 46:30, it's worth noting that presentations given in dark mode are generally less visible than those in light mode. In the live room, any ambient light can wash out the "dim" image. And for KZbin viewers in bright environments (such as outside or by a window), the same is true. In contrast (no pun intended), light mode content can always be dimmed at the display device. So those late night viewers can just turn their screen brightness down. Unless you know your current and future audience will be in low light environments, Light Mode is the safe choice.
@massanchik
@massanchik 8 ай бұрын
great talk. thanks
@vldthdrgn
@vldthdrgn 4 ай бұрын
Amazing!
@Roibarkan
@Roibarkan 8 ай бұрын
51:03 I think contemporary c++ devs can think or appreciate “point free” because it typically corresponds to composing chains of operations in the same manner that std::ranges::views can be composed using the pipe operator
@0LoneTech
@0LoneTech 5 ай бұрын
Futhark sample: let SumOfSquares a = map2 (\x i -> if length a % (i+1) == 0 then x*x else 0) a (indices a) |> reduce_comm (+) 0 This isn't point free but does use three different combinators. |> could be replaced by reordering with parenthesis, but the map-reduce array combinators are the expected way to handle arrays. The filter was avoided using a neutral element, because realizing the filtered list could cause multiple heavier passes.
@sanjaygatne1424
@sanjaygatne1424 8 ай бұрын
Moses Schönfinkel birth date is 1888 not 1988.(typo)
@mestar12345
@mestar12345 8 ай бұрын
Is map a combinator? Is bind a combinator?
@SuchirKavi
@SuchirKavi 8 ай бұрын
18:58 Futhark should be an array language, no?
@MrAbrazildo
@MrAbrazildo 6 ай бұрын
12:00, *1888. 15:34, what?! Do you know any other kind of software they are willing to pay millions? 38:30, to map true/false keeping their positions/indexes. If that's not required, std::partition puts all trues at the beginning, returning a pointer to where they finish and to where the falses start. And std::stable_partition, despite obviously not keeping their indexes, keep their positions related to each other, at each group. 56:00, auto sum_of_squares (std::vector nums) {return std::accumulate (nums.begin(), nums.end(), 0, [](auto x, auto i) {return !(nums.size() % i)*x*x;});}
@thomasmeslin8399
@thomasmeslin8399 7 ай бұрын
:o 🎉
@ujin981
@ujin981 8 ай бұрын
46:50 does readability count?
@lorenzobolis5166
@lorenzobolis5166 5 ай бұрын
8:40 they did not fix it in post
@user-tx4wj7qk4t
@user-tx4wj7qk4t 3 ай бұрын
The definition of pure function and distinction isn't really correct. A combinator is a pure function that is not a closure, that's it.
@user-tx4wj7qk4t
@user-tx4wj7qk4t 3 ай бұрын
That fromEnum solution is absolutely awful and haskell does have a count function... Not like you couldn't have defined it yourself
New Algorithms in C++23 - Conor Hoekstra - CppNorth 2023
1:29:56
Её Старший Брат Настоящий Джентельмен ❤️
00:18
Глеб Рандалайнен
Рет қаралды 8 МЛН
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Brawl Stars
Рет қаралды 22 МЛН
Please be kind🙏
00:34
ISSEI / いっせい
Рет қаралды 108 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. ФИНАЛЬНАЯ ГОНКА! BMW M5 против CLS
47:36
Composition Intuition by Conor Hoekstra | Lambda Days 2023
47:12
Algorithms as a Tool of Thought // Conor Hoekstra // APL Seeds '21
44:38
Dyalog User Meetings
Рет қаралды 18 М.
Keynote: Optimizing for Change - Ben Deane - CppNorth 2023
1:24:24
Symbolic AGI: How the Natural Will Build the Formal
43:32
Positron's Emacs Channel
Рет қаралды 5 М.
"Concatenative programming and stack-based languages" by Douglas Creager
40:30
Strange Loop Conference
Рет қаралды 13 М.
New Algorithms in C++23 - Conor Hoekstra - C++ on Sea 2023
1:25:20
"The Economics of Programming Languages" by Evan Czaplicki (Strange Loop 2023)
43:58
Strange Loop Conference
Рет қаралды 119 М.
Урна с айфонами!
0:30
По ту сторону Гугла
Рет қаралды 6 МЛН
сюрприз
1:00
Capex0
Рет қаралды 1,5 МЛН
One To Three USB Convert
0:42
Edit Zone 1.8M views
Рет қаралды 441 М.
AI от Apple - ОБЪЯСНЯЕМ
24:19
Droider
Рет қаралды 130 М.