codeworld
haskell-template
Our great sponsors
codeworld | haskell-template | |
---|---|---|
14 | 7 | |
1,237 | 203 | |
0.0% | - | |
0.0 | 7.9 | |
about 1 year ago | 10 days ago | |
Haskell | Nix | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
codeworld
-
Pedagogical Downsides of Haskell
Code World[1] is a great project that addresses a number of the problems from the article, with an eye towards using Haskell to teach children basic math and programming simultaneously. Code World directly addresses a number of the obstacles outlined in this article:
1. Using an online editor with a rich built-in library removes any toolchain problems.
2. A custom standard library simplifies pedagogically unnecessary details like Foldable
3. The custom standard library also avoids currying (f(a, b) for functions rather than f a b)
4. Custom error messages improve the feedback students get from the compiler
I would highly recommend Code World to anybody looking to teach programming with Haskell. If you want to teach Haskell in a way that fits the existing ecosystem, it's also possible to run Code World without the custom standard library[2].
[1]: https://code.world/#
-
Ask HN: It's 2022. Where should I direct the youths to learn about programming?
Loose connection, but made me remember https://code.world/ uses a Haskell-like functional language to define still pictures, animations, or even games.
- My kid loves computers. I would like him to start programming, just for fun to see if it is something for him. But how to start, what type of programming language that is appealing. Books? I mean, we can start with Lisp, but how long will attention hold? Please advise, thanks.
-
Game
I second gloss! It's a bit limited (no sound, fonts, nor even text centering, but you do have support for vector and bitmap graphics, color manipulation, mouse, keyboard, and animations), but it's so, so easy to use that I not only recommend it (or the similar Code World) for anybody's first game, I still use it for my newer games.
-
Functional Programming in OCaml
Two that I can think of:
- Bootstrap teaches a toned-down version of Racket (i.e. Scheme): https://bootstrapworld.org/materials/spring2021/en-us/course... . It's taught in some schools as well as a comp sci curriculum.
- https://code.world/ teaches using a toned-down version of Haskell. To my knowledge it's not used in schools.
-
Why I Support the Haskell Foundation
I had the silly 'fromString' error you get when using RebindableSyntax but had forgotten what to do next. Quick Google search and I hit on codeworld #59.
-
Safe Haskell?
I'm not a user myself, but I understand Lambdabot and mueval depend on it. More generally, anything that executes Haskell code supplied by untrusted users would fit the bill. I don't know if CodeWorld for example allows user-supplied modules, but if it did they'd have to be Safe.
-
Do you recommend using ghc-pkg? Do you use it and why?
I also have a list of about 300 or so packages at https://github.com/google/codeworld/blob/master/codeworld-available-pkgs/codeworld-available-pkgs.cabal, which I'd like Cabal to solve and find compatible versions to make available, preferably without listing them all on one massive command line! There are limits on the length of a command line. I don't know if cabal install --lib will expose packages that are dependencies, but not actually listed on the command line, in the resulting environment.
You know, now that you mention it, that sounds familiar. There's an issue for this at https://github.com/google/codeworld/issues/1182, and having cabal set up an environment file for GHC is mentioned there. There are some other complications: for example, with cabal v2-install, I can't seem to list multiple packages in local directories. So the answer to that seems to be creating a cabal.project file that lists them all... but then I want to install all of the packages from that cabal.project file into the environment, and their dependencies, and also make the consistent set of dependency versions that work with them (as chosen by Cabal's constraint solver) available in an environment for any further projects built against those same libraries.
-
Beginner Question on library
You could also use code.world with a guide here. It is meant as a beginner-friendly introduction to Haskell. It also has an online environment, so you won't need to install anything.
haskell-template
-
On the verge of giving up learning Haskell because of the terrible tooling.
I am a Haskell newbie myself. Found nix flakes and https://github.com/srid/haskell-template really nice to start with (of course some learning curve is unavoidable).
-
Simple GHC stack for a novice
If you wanna get started with Haskell on Nix, check out Sridhar Ratnakumar's Haskell template for Nix. You can easily clone the repo and move your Haskell code into it, especially if you're still a novice (as you likely won't be dealing with a HUGE codebase).
-
haskell-flake: A `flake-parts` Nix module for Haskell development.
I'd say that's up to you. haskell-template did recently switch to this; you can see the changes in this PR, which is all limited to flake.nix.
-
Best practices for Haskell on M1 with Nix?
Could you open an issue here with the full error message?
-
Looking for IDE that is suitable for learning Haskell
I think you should use ghcup because Nix has a higher learning curve ... BUT if you ever want to try out Nix, there is https://github.com/srid/haskell-template which sets everything up for you so that things "just work" in VSCode.
What are some alternatives?
Cabal - Official upstream development repository for Cabal and cabal-install
dune - A composable build system for OCaml.
reanimate - Haskell library for building declarative animations based on SVG graphics
scratchjr - With ScratchJr, young children (ages 5-7) can program their own interactive stories and games.
sdl2-snake - An example application for sdl2.
haskell-template
rust-nix-template - Rust project template with Nix (Flakes) and VSCode support
hack-assembler - A Hack assembler in OCaml. A program that translates assembly code for the Hack computer into its binary representation.
Think-Python-2E-My_solutions - My solutions to the exercises contained in the "Think Python 2nd Edition" book by Allen B. Downey.
PulseSensorPlayground - A PulseSensor library (for Arduino) that collects our most popular projects in one place.
retro-httpaf-bench - Benchmarking environment for http servers
awesome-haskell-sponsorship - 💝 Haskell profiles to sponsor