We need HKT. F#. Cmon... I love F# but seriosly...
We're working on Type Classes. It seems like HKTs (or anything like them) are going to be hard without diverging in a huge way from the rest of the .NET ecosystem.
What's New in F# 4.1? [video]
41–50 of 65 posts
Re: What's New in F# 4.1? [video]
#42We need HKT. F#. Cmon... I love F# but seriosly...
Not only we do not need HKT, we also do not need Profunctor Optics.
This is why I love working on an open project like F#. We get to disagree in public! I would actually like Typeclasses, though I have serious reservations in terms of not breaking back compatibility. I'm certainly not about to get on a table and rant about how "it was truly the lack of better ad-hoc polymorphism via higher-kinded types that kept me from writing good software in F#!", and I see a danger in bifurcating the language .... but I like Typeclasses and think they do solve some more nuanced issues out there.
I should probably be putting my opinions on the Typeclasses thread...
Re: What's New in F# 4.1? [video]
#43Earlier quoted context omitted.
VS Code and Ionide work really well together. There are some slight issues like the loss of syntax highlighting in certain cases, but that is a really small issue. I am using this combination on a GalliumOS chromebook and it works out of the box in like 10 or 15 minutes: - install VSCode and then Ionide - install .net core - install mono (i believe ionide still uses mono) - install node and npm and then yeoman - inst…
> VS Code and Ionide work really well together Not in my experience. Never since it appear the setup have worked for me, not even once. I try again last week. I need to copy-paste the .sh script from github because the one it generate was wrong. P.D: I don' use yeoman. NPM bloat is not my style: I follow the MS tutorial: https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tuto...
I'd love to learn more about what went wrong in setup. Keeping that article up to date and, more importantly, correct is a priority of mine, because I really want people to learn about Ionide and F#.
Re: What's New in F# 4.1? [video]
#44The main holdup is that the build/packaging situation is disastrous.
Most stuff still relies on Mono, which is fine, but trying to get things running on core quickly runs you into articles that assume you know exactly what you're doing and how all the pieces fit together, which is also fine.
What's not fine is that the base task of wanting to download existing packages and run the result doesn't have a simple solution. The base .net core install comes with a project.json solution, which seems completely sane to me, but apparently that's deprecated and not how to do things. Then there's Nuget which is a package repo but apparently not a package manager because it's supposed to be a VS extension but maybe it is in the next version because there's a shell. There's also msbuild and some variant of it for fsharp which is mostly opaque XML but can be managed using a project called forge, which seemed to kind of work for me but also seems very opaque. There's also paket which manages dependencies from nuget, there's also Fake which seems to be a Rake-like build system.
I know I'm not the only one who's run into this. I've seen at least 4 other requests for help in various F# forums and everybody seems to pretty much shrug and say that they use VS.
If one of the F# cognoscenti could write up simple instructions on how to set up a project and run it using VSCode and .Net core, I'd be grateful.
Re: What's New in F# 4.1? [video]
#45While it is great to see all those new features appearing in F# 4.1, the video gives a very narrow perspective on "what is new in F#" - it is a video about new language features in 4.1 and so this is to be expected - but if I was to list "what is new in F# in 2016", large portion of the list would include recent community contributions. Three recent projects are: * http://fable.io , which is a modern F# to JavaScript…
I completely agree!
I wish I had more upvotes to give, since I'd give your comment the most if it were possible. I agree that there are some omissions from the community here, especially Ionide (which I personally use in addition to Visual Studio). I should probably do a video showing a breadth of F# tooling and libraries for F#, because it really is a great landscape where you can pick the tools and libraries based on their merit, rather than being stuck with one particular set of tools.
Re: What's New in F# 4.1? [video]
#46So, I've been making a slightly more concerted effort to pick up F# because I've always liked F# and .Net core and Fable means that I might actually get to run it at work without the non-starter of switching stuff over to windows servers. Excellent. The main holdup is that the build/packaging situation is disastrous. Most stuff still relies on Mono, which is fine, but trying to get things running on core quickly runs…
Let me see if I can clarify the landscape a bit here:
.NET Core tooling support is still in absolute Preview. The runtime and libraries are stable, but the .NET Core SDK, MSBuild support for .NET Core, the project system in Visual Studio, etc. are all Preview support.
Much of the F# community is waiting on .NET Core tooling stability to act, which they have every right to do. .NET Core tooling is still in Preview, and still changing rapidly. Using any cross-platform community tooling or libraries on .NET Core is likely going to be rough right now, and that's because the underlying tooling that the community needs to rely on is in Preview.
F# support is still officially in alpha for .NET Core, a moniker we're pretty deliberate about because we don't want to "flip the switch" until everything is stable and compatible with existing code.
Honestly, if the churn is painful for you, the best advice I can give at this point is to wait until the tooling for .NET Core stabilizes and becomes release-quality. Up until that point, there will still be churn.
Re: What's New in F# 4.1? [video]
#47Earlier quoted context omitted.
> VS Code and Ionide work really well together Not in my experience. Never since it appear the setup have worked for me, not even once. I try again last week. I need to copy-paste the .sh script from github because the one it generate was wrong. P.D: I don' use yeoman. NPM bloat is not my style: I follow the MS tutorial: https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tuto...
Awkward person in the video AND author of that tutorial here... I'd love to learn more about what went wrong in setup. Keeping that article up to date and, more importantly, correct is a priority of mine, because I really want people to learn about Ionide and F#.
> build.sh: line 34: syntax error: unexpected end of file
So I delete the last empty line, and get:
> build.sh: line 33: syntax error near unexpected token `fi'
I don't see any wrong with the script (I don't know bash scripting). So I go to the github site and just copy from https://github.com/ionide/ionide-vscode-fake/blob/master/bui...
And it work.
This is the diff:
diff -r 8b6c97c12f6e build.sh
--- a/build.sh Fri Dec 09 20:27:05 2016 -0500
+++ b/build.sh Fri Dec 09 20:27:50 2016 -0500
@@ -3,7 +3,7 @@
then
# use .Net
- .paket/paket.bootstrapper.exe
+ .paket/paket.bootstrapper.exe prerelease
exit_code=$?
if [ $exit_code -ne 0 ]; then
exit $exit_code
@@ -15,7 +15,7 @@
exit $exit_code
fi
- packages/FAKE/tools/FAKE.exe $@ --fsiargs build.fsx
+ packages/FAKE/tools/FAKE.exe $@ --nocache --fsiargs build.fsx
else
# use mono
mono .paket/paket.bootstrapper.exe
@@ -29,5 +29,5 @@
if [ $exit_code -ne 0 ]; then
exit $exit_code
fi
- mono packages/FAKE/tools/FAKE.exe $@ --fsiargs -d:MONO build.fsx
+ mono packages/FAKE/tools/FAKE.exe $@ --nocache --fsiargs -d:MONO build.fsx
fi
\ No newline at end of fileRe: What's New in F# 4.1? [video]
#48Earlier quoted context omitted.
Its currently in a private bitbucket repo. I can give you the parser though, MIT licensed. ParserUtils is where maybeIndented and indented are. They make indentation just work. There currently overzealous with backtracking though, makes errors kinda shit. Working on that at somepoint. https://gist.github.com/xavierzwirtz/99479a11f1eefd3215467f7...
Ok, thanks. But this not look more easy than just do it as TopDown Parser. But I don't know your language so it maybe have provided you with some benefits more than just lines of code?
Re: What's New in F# 4.1? [video]
#49Earlier quoted context omitted.
My purpose would be to create a multiplayer game programming platform. Basically, it would come with a game loop already running, with communications already working. Then you could modify the game by changing functions that transform game tick N to game tick N+1.
There's another way to do this. Just scan the compiled code for access to anything other than a fairly short whitelist of functions. This is how Terrarium worked.
Re: What's New in F# 4.1? [video]
#50Earlier quoted context omitted.
Not only we do not need HKT, we also do not need Profunctor Optics.
Hey tomas! This is why I love working on an open project like F#. We get to disagree in public ! I would actually like Typeclasses, though I have serious reservations in terms of not breaking back compatibility. I'm certainly not about to get on a table and rant about how "it was truly the lack of better ad-hoc polymorphism via higher-kinded types that kept me from writing good software in F#!" , and I see a danger i…