Тёмный
Func Prog Sweden
Func Prog Sweden
Func Prog Sweden
Подписаться
Func Prog Sweden is the channel for anyone interested in functional programming. The channel explore different functional programming languages like Erlang, Haskell, F#, Scala, Clojure and functional programming in general. Subscribe to the channel to learn more and to support our work of spreading functional programming.

If you want to get featured on the channel and have something to present, contact the organizers by joining the FPS Discord Server and chat with Magnus or Robin

If you want to spread functional programming and support the channel, buy something from the shop:
funcprogsweden.myspreadshop.net/

#funcprogsweden
F# Down Under by Sashan Govender
46:49
Месяц назад
Algebraic Effects from Scratch by Kit Langton
1:22:52
6 месяцев назад
REPL-driving the browser by Josh Glover
1:39:38
7 месяцев назад
ChatGPT as your Erlang coach by Georgiana Chelu
33:03
11 месяцев назад
Lessons learnt by Mikael Tönnberg
1:07:16
Год назад
Комментарии
@Nesdac-k1l
@Nesdac-k1l 6 дней назад
8:53 rustfmt can be configured, although i suppose its not common to do
@AQUTENOLEJ
@AQUTENOLEJ 7 дней назад
lol. I'm about to be that guy.... 6:43 there is a syntax error... my eyes started bleeding immediately lol.
@dormammun
@dormammun 14 дней назад
What does editor user author?
@craftvscruft8060
@craftvscruft8060 19 дней назад
I'd been hoping to see more about EYG, thanks for hosting this!
@thegeniusfool
@thegeniusfool 20 дней назад
9% understood more than 40% of this, but 30% found it interesting, and the remainder just a bit alien.
@thegeniusfool
@thegeniusfool 20 дней назад
It's not a language per se, but a Meta + Core + AST manifesting/hosting a calculus based on lambda + effects.
@AQUTENOLEJ
@AQUTENOLEJ 20 дней назад
I'm only 13:00 in, but, I think I'm having a hard time understanding what this is... is it just another functional language (a la haskell)? And what do you mean by "It has no syntax", 😅 I feel like everything i've seen was "syntax" . In any case, I am quite intrigued...
@petersaxton5183
@petersaxton5183 20 дней назад
I think a better statement than "no syntax" is to probably say "no parser". The program is saved as a JSON representation of the AST and not a source text file.
@AQUTENOLEJ
@AQUTENOLEJ 20 дней назад
@@petersaxton5183 ahhhh! I see... that makes more sense to me (and it aligns with what we're seeing). I actually think thats quite interesting.... kinda like a batteries not included lsp starter. I dig it... I think the EYG team (probably just this guy? 🤔) need to do better messaging for their product though. Without the demo, I dont know if I'd even explore this project tbf.
@garthgoldwater5256
@garthgoldwater5256 28 дней назад
This talk **rules** i hope a part two arrives sometime
@kitlangton
@kitlangton 27 дней назад
❤‍🔥
@pawelsubko7277
@pawelsubko7277 Месяц назад
Is there a reason for instane / unredable syntax for function call? Also I don't like no 'return' keyword or something indicating where function returns something. I think it adds to readability. Other than that I love it.
@Qrzychu92
@Qrzychu92 15 дней назад
once you get used to it, having to write returns thinks just wrong and redundant :)
@pawelsubko7277
@pawelsubko7277 15 дней назад
@@Qrzychu92 Well I'm pretty sure you can get used to every minor change like this and then the other way around seems just wrong. We could have no keyword for function definition and I'm sure after some time youd see writing 'def' or whatever wrong. The point is what you choose to see and I think highlighted 'return' keyword greatly increases readability. the same goes for function call. I'm sure you can get used to it, but what's here it's plain insane not to do this like the whole rest of the world.
@thegeniusfool
@thegeniusfool Месяц назад
Dags för LazyML revivak…..
@blankboy-ww7jt
@blankboy-ww7jt Месяц назад
Cool talk, hope to see more demystify content like this. Though the speech could be improved, but it's fine afterall.
@AlexanderGranin
@AlexanderGranin Месяц назад
Oh, thanks! Maybe, you'll be interested in my talk "Functional Programming: Failed Successfully" then. It demystifies a lot. I wish my speech to be improved. Not only Engilish, but also my native Russian. I'm more writer than speaker, yes...
@georgerogers1166
@georgerogers1166 Месяц назад
Yes. And object orientation is antithetical to software engineering.
@AlexanderGranin
@AlexanderGranin Месяц назад
🤔🤔🤔
@migalejo85
@migalejo85 Месяц назад
Really interesting stuff, lot of things i actually used, but didn't fully get. The presentation made some things clearer. Thanks
@laughingvampire7555
@laughingvampire7555 Месяц назад
you don't have mutable data, data is always immutable, what is mutable is the memory, the storage where we put that data in. Variables & pointers are an abstraction on memory, for direct & indirect access respectively, and what functional programming is about is to make our code dependent on values and not on memory locations, traditionally the FP community call this, referential transparency, but the clever guys for the imperative world have given it a better name, value semantics.
@laughingvampire7555
@laughingvampire7555 Месяц назад
ok, tell me you don't understand types without telling me you don't understand types. *types don't fix the understanding of anything.* *types are markets, tags that track code where certain assumptions about the code where made* so when you need to make changes you can follow the types and change all the places where you have changed your assumptions and understanding.
@apestogetherstrong341
@apestogetherstrong341 20 дней назад
check out the “spec-ulation” and “maybe not” talks by rich hickey.
@nutelhere
@nutelhere Месяц назад
the anonymous tagged union is the breakthough
@laughingvampire7555
@laughingvampire7555 2 месяца назад
I have to admit, I love ML syntax, it looks so much cleaner to me than other languages, some people prefer the English looking stuff but for programming languages English looking stuff is sub-optimal for my taste. I still prefer S-expressions syntax. people don't understand how to code with Dynamic languages. the main mistake they make is to focus only on types, also if your reference as dynamic language is Python or Ruby then you are lost. Your reference should by Common Lisp & Smalltalk & Erlang, those are the real dynamic languages, Ruby & Python follow the same static philosophy of UNIX, even som lisps like Scheme & Emacs lisp & some smalltalks like GNU Smalltalk follow the static nature. Common Lisp & Squeak Smalltalk are the standard for Dynamic languages.
@momo-dm3rw
@momo-dm3rw 2 месяца назад
Thank you very much for this presentation
@michielnass4836
@michielnass4836 2 месяца назад
Thanks for a look in the F# kitchen. I am lucky for getting to use F# for my job. You are all doing a great job thanks!
@andmal8
@andmal8 2 месяца назад
This is an awesome video, just what is needed to enlighten things about Haskell-related stuff, and that it is really interesting and nice to do :)
@СергейГалиуллин-п9ю
@СергейГалиуллин-п9ю 2 месяца назад
Give us the BEAM and Roc will become the ultimate overlord 3000 language of all the predictable futures
@WiecejNoxiego
@WiecejNoxiego 2 месяца назад
Maybe there could be some BEAM platform for Roc? I personally appreciate that it doesn't run (or doesn't have to run) on VM.
@СергейГалиуллин-п9ю
@СергейГалиуллин-п9ю 2 месяца назад
@@WiecejNoxiego sure, that's the best way indeed. Imagine web servers written in ROC, both front and back ends, running on BEAM, type safe, no runtime errors etc etc.
@WiecejNoxiego
@WiecejNoxiego 2 месяца назад
@@СергейГалиуллин-п9ю I didn't explore ROC much yet (still waiting for it to mature a bit), but personally I'd be more interested in if it's possible to create platform for creating web servers with OpenAPI out of the box. It'll definitely be interesting to see how much features platforms can abstract from applications. Beam is nice, but it's probably overkill for most web servers and you probably take big performance hit for all its' features.
@ukasztrojanowski3149
@ukasztrojanowski3149 3 месяца назад
Oh, wow. A couple months ago I was thinking about how it would be possible to write extensible software without compromising on security, the idea of platforms is super interesting, and could be this languages killer feature
@ralfkretzschmar8131
@ralfkretzschmar8131 3 месяца назад
@19:00: The type system can actually help you: type AddIns = "a" | "b" | "c" | "d"; type SelectedAddIns = { [key in AddIns]?: number; }; const coffeeForMe: { selectedAddIns: SelectedAddIns } = { selectedAddIns: { a: 1, x: 5, // <-- This is not covered by the type definition. Keys must be one of AddIns }, };
@valcron-1000
@valcron-1000 3 месяца назад
It's always the jump from the free monad to actually extensible effects that trips me. It's reasonable how you can handle a single effect by encoding it as a value and threading it, but the moment you introduce multiple effects things get quite complicated, specially the part where you track at the type level which effects have already been handled. Unfortunately this presentation did not get to that part 😞
@kitlangton
@kitlangton 3 месяца назад
I bit off a bit more than I could chew in an hour and fifteen minutes, unfortunately ☹. I may come back to this someday!
@DaRkShadOwxXx14
@DaRkShadOwxXx14 3 месяца назад
The genius of that data structure. It's part of the niceness of JSON or dot files. Must've been tortuous for Microsoft engineers to stitch together COM, let alone the varying NET Frameworks (and their respective convoluted graphical kits)
@portal_narlish3710
@portal_narlish3710 3 месяца назад
Very effective talk 😂
@amigalemming
@amigalemming 3 месяца назад
1:07:00 The Pseudoinverse of a matrix is also defined for non-square matrix, that's why it is the Pseudoinverse and not the plain matrix inverse. Hmatrix.pinv supports that (like Numeric.LAPACK.Singular.pseudoInverseRCond).
@amigalemming
@amigalemming 3 месяца назад
1:00:00 I'd like to see how the famous proof of the uniqueness of the Pseudo inverse given the Penrose axioms can be writtenin Agda.
@PiotrTajchman
@PiotrTajchman 4 месяца назад
Just don't.
@kaansouth8789
@kaansouth8789 4 месяца назад
This language is so cool!
@JanusTroelsen
@JanusTroelsen 4 месяца назад
People have been using multiple languages since forever. Linker scripts, make files, autoconf, the list goes on. Also, how is this related to functional programming? It looks might it might be related to dataflow programming, but i don't see higher order functions
@edwarddejong8025
@edwarddejong8025 4 месяца назад
If you read the Turing Award lecture by John Backus who invented functional programming, he talks about software interchangeable parts, and making large programs out of smaller pieces. So this is an attempt to offer a more Lego-like experience for coding, where you snap together small chunks of code. You are correct it doesn't resemble languages like Haskell. Higher order function capability is expressed rather differently, but it has the same result. Hard to explain in a paragraph.
@isaactfa
@isaactfa 4 месяца назад
I love the mortgage calculator as an example of a responsive layout because when flipping the screen the layout itself doesn't change at all, everything just gets wider by a seemingly completely arbitrary amount so that nothing lines up anymore. I also love the color picker. It's very responsive until the available vertical space gets too small and it hits a debugger break point and freezes the application. Very production ready. It also really doesn't want to starts scrolling, it just shrinks and/or hides content.
@edwarddejong8025
@edwarddejong8025 3 месяца назад
I updated the Color picker to accommodate super low vertical space, by dropping the web palette if the total screen height is below a certain threshold. It is intended for desktop computer use and tries to make the color swatches large enough to be useful
@viniciusataidedealbuquerqu2837
@viniciusataidedealbuquerqu2837 4 месяца назад
I wasn't expecting this version of the language to be so good. the ! operator is beautiful
@zcizzorhandz5567
@zcizzorhandz5567 5 месяцев назад
I'm tired of the hobby languages, what problem is Roc solving specifically? If there's no specific problem it solves it's a waste of time.
@DavidAguileraMoncusi
@DavidAguileraMoncusi 4 месяца назад
What about "making prototyping type safe"?
@JoshZigler-m6g
@JoshZigler-m6g 17 дней назад
what a foolish comment on so many levels.
@zcizzorhandz5567
@zcizzorhandz5567 16 дней назад
@@JoshZigler-m6g We make things to solve problems. Why put so much effort into something that you know has no future?
@JoshZigler-m6g
@JoshZigler-m6g 16 дней назад
@@zcizzorhandz5567 maybe you do but most of the people i know make things because they want to. why make music, or a new game, or a sand castle. utility is an incentive, it's not the reason.
@Kyler1Ace
@Kyler1Ace 5 месяцев назад
Really not a fan of the idea of "try->throw->catch-> try again inside the function that threw" idea near the end, that sounds like itd be extremely hard to reason through. Maybe resumes that affect the control flow of the thrower should explicitly be passed in as an argument and if they dont apply they go back up as normal and if they do they try the passed in thing
@BlowaterNostr
@BlowaterNostr 5 месяцев назад
Roc has matured a lot since last time I watched Richard's talk. Will give it a try!
@budiardjo6610
@budiardjo6610 5 месяцев назад
wow, this person need to speak more. really nice project.
@c4tubo
@c4tubo 5 месяцев назад
Wow, that's big news about you joining Zed. Grats for that. Looks like Roc is ready for someone (probably me) to implement Bye Bye Hello World.
@Rene-tu3fc
@Rene-tu3fc 5 месяцев назад
haskell + rust + typescript. very interesting
@godDIEmanLIVE
@godDIEmanLIVE 5 месяцев назад
Richard is a fantastic presenter.
@valerysmirnov9535
@valerysmirnov9535 5 месяцев назад
Sounds like mixture of OCaml and Nim with a platforms feature. Sounds great
@godDIEmanLIVE
@godDIEmanLIVE 5 месяцев назад
Nim mentioned.
@thepatzer
@thepatzer 5 месяцев назад
A bit like Gleam without the BEAM?
@verified_tinker1818
@verified_tinker1818 3 месяца назад
Looks as different from Gleam as it is from Rust.
@RobertLJ11
@RobertLJ11 5 месяцев назад
Thanks for the talk and demo..😀 I'm looking forward to trying out the language.
@tlacmen
@tlacmen 5 месяцев назад
Would it be possible to use Roc as a scripting language in a game? Writing a custom platform to provide all interactions with the game. And have it safely run on players pc?
@KyleSmithNH
@KyleSmithNH 5 месяцев назад
I would think so - it can compile to webassembly so there's at least an intention for the output artifact to be variable (and based on the platform?). Or do you mean people would write Roc _in_ the game? The REPL on their website means they've managed to embed the language and runtime, so you could too (not that it would be easy, haha).
@svenvancaem360
@svenvancaem360 5 месяцев назад
Yeah totally! Last I checked, someone in the Roc Zulip chat was working on exactly that already!
@fluffyunicorn7155
@fluffyunicorn7155 5 месяцев назад
It will be interesting to see the governance model for this language. I have used Elm in the past. Richard was also part of the Elm team. Elm is “public source” and not open source. You can not meaningfully contribute to the language if you are not part of the team. It is also the only language I know where FFI can only be used by packages that the language authors write. I will not use any language that has not reached 1.0 yet if I’m not comfortable that I can fix the bugs in the language that I run into.
@clo4
@clo4 5 месяцев назад
Roc is very much true open source. The largest contributor isn’t even Richard anymore, and there are loads of people that have made very meaningful contributions.
@MorganEarlJones
@MorganEarlJones 5 месяцев назад
it's unusual to follow along with a video where the person live coding is using 1 release ahead of what the github pushes for every package lol I guess this video will stay relevant for longer that way though
@notoriouslycuriouswombat
@notoriouslycuriouswombat 5 месяцев назад
someone get this man a bag of money, its stuff like this that can take Fsharp to many more users
@michaelmaloney3027
@michaelmaloney3027 5 месяцев назад
The REPL is broken on the front page: i.imgur.com/9biAk8A.png
@rosscousens6263
@rosscousens6263 5 месяцев назад
Richard Feldman is such an engaging and captivating presenter. He comes across as congenial and curious and it's always a pleasure to watch his talks. Really rooting for roc and I can see it's getting to a point where I could start using it myself!
@JT-mr3db
@JT-mr3db 5 месяцев назад
Very interesting. If I’m not mistaken, different platforms could have completely different implementations of Stdin and Stdout?
@СергейМакеев-ж2н
@СергейМакеев-ж2н 5 месяцев назад
Different platforms could have completely different APIs, or different implementations of the same APIs. Or they can have their own constraints on the Main that you're supposed to export (e.g. list of errors allowed on the top level, which the platform will then process).