Updated, removed projects sections.
This commit is contained in:
parent
f95b37c771
commit
bd111cf45c
1 changed files with 27 additions and 60 deletions
|
@ -72,24 +72,22 @@ Our main rule is to use as few features of a programming language as
|
||||||
possible to achieve your goal.
|
possible to achieve your goal.
|
||||||
This is a kind of merge between minimalism and pragmatism that in the end
|
This is a kind of merge between minimalism and pragmatism that in the end
|
||||||
provide a tremendous amount of benefits.
|
provide a tremendous amount of benefits.
|
||||||
This is why, even if I like to play with the latest Haskell trendy feature,
|
This is why, even if I like to play with the latest Haskell trendy features,
|
||||||
I generally program without those.
|
I generally program without those.
|
||||||
With just a very few amount of Haskell features you will already be in
|
With just a very few amount of Haskell features you will already be in
|
||||||
enviromnent with a *lot* of benefits as compared to many programming
|
enviromnent with a *lot* of benefits as compared to many programming
|
||||||
languages.
|
languages.
|
||||||
|
|
||||||
So enough talk, here is my old article new again, with just a few changes
|
So enough talk, here is my old article updated with a few changes and
|
||||||
and cleanup.
|
cleanups.
|
||||||
Also, I will try to go a bit further than before.
|
I also added a section about how to create a new project template with nix.
|
||||||
By the end of this article you should be autonomous if you want to create a
|
|
||||||
new product in Haskell.
|
|
||||||
Be it a simple command line tool or a web application.
|
|
||||||
If you are going toward GUI programming, this is a whole subject on its own
|
|
||||||
and I do not really mention it.
|
|
||||||
|
|
||||||
My .02 for "Single Page Application" choice is to use Purescript with the
|
I will try to write other articles about how to write a real program in
|
||||||
halogen framework.
|
Haskell.
|
||||||
Purescript is really awesome as well as halogen.
|
I tried to add those to this already long article, but, it occurs to be
|
||||||
|
more work than expected.
|
||||||
|
So I preferred stop at this point for now and provide separate articles in
|
||||||
|
the future related to Haskell application development.
|
||||||
#+end_quote
|
#+end_quote
|
||||||
|
|
||||||
* Introduction
|
* Introduction
|
||||||
|
@ -2306,7 +2304,7 @@ After a bit of experience, most Haskellers can avoid memory leaks naturally.
|
||||||
|
|
||||||
* Dive into the impure
|
* Dive into the impure
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: hell-difficulty-part
|
:CUSTOM_ID: dive-into-the-impure
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
Congratulations for getting so far!
|
Congratulations for getting so far!
|
||||||
|
@ -3466,29 +3464,23 @@ monads[fn:7]!
|
||||||
|
|
||||||
* Start swimming
|
* Start swimming
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: difficulty--hell
|
:CUSTOM_ID: start-swimming
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
If you come this far, you can really congratulate yourself.
|
If you come this far, you can really congratulate yourself.
|
||||||
This is already what I would personnaly call a tremendous achievement.
|
This is already what I would personnaly call a tremendous achievement.
|
||||||
|
|
||||||
From now on, this is more or less a free space.
|
|
||||||
You should understand the essence of the Haskell language.
|
|
||||||
But now, to really be able to create something useful, you will need to
|
|
||||||
also understand not only the language but the ecosystem around it.
|
|
||||||
|
|
||||||
This chapter will focus on how to build applications with Haskell.
|
This chapter will focus on how to build applications with Haskell.
|
||||||
How to use libraries inside your project.
|
How to use libraries inside your project.
|
||||||
And perhaps provide a few pointers to start to organize your projects.
|
|
||||||
|
|
||||||
Note application development is easier to introduce than library development.
|
Note application development is easier to introduce than library development.
|
||||||
Mostly because dependency management will be a lot easier.
|
Mostly because dependency management will be a lot easier.
|
||||||
|
|
||||||
#+begin_notes
|
I first intended to provide a lot more informations about how to create a
|
||||||
If you find those part too hard, do not feel discouraged though, most
|
project and provide a few project examples.
|
||||||
Haskeller I know had to dig into Haskell at least two or three times before
|
But it occurs this is harder than I first expected.
|
||||||
it really "clicked" for them.
|
So I will just provide the introduction about how to create a starting
|
||||||
#+end_notes
|
point with many pointers for other possible options.
|
||||||
|
|
||||||
** Start a new project
|
** Start a new project
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
@ -4076,46 +4068,21 @@ test-suite my-app-test
|
||||||
|
|
||||||
You can download the final cabal file: [[file:my-app/my-app.cabal][my-app.cabal]]
|
You can download the final cabal file: [[file:my-app/my-app.cabal][my-app.cabal]]
|
||||||
|
|
||||||
** Command line application
|
* Conclusion
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: command-line-application
|
:CUSTOM_ID: conclusion
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
One of the simplest while still useful command line utility I can think of
|
This was a re-written fast Haskell tutorial.
|
||||||
is a simple strong password generator.
|
I will certainly complete this with more advanced tutorial explaining how
|
||||||
|
to write a few Haskell projects.
|
||||||
|
|
||||||
*** Password Generator
|
Thanks for reading it.
|
||||||
:PROPERTIES:
|
|
||||||
:CUSTOM_ID: password-generator
|
|
||||||
:END:
|
|
||||||
|
|
||||||
Create a new project named =hspwg= (HaSkell PassWord Generator).
|
|
||||||
If you do not want to go through the process of creating a new project form
|
|
||||||
scratch again you can download an archive here: [[file:hspwg.init.tar.gz]].
|
|
||||||
|
|
||||||
Let us write the most basic application possible.
|
|
||||||
Edit the file =src/Main.hs= with:
|
|
||||||
|
|
||||||
#+begin_src haskell
|
|
||||||
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Web Application
|
|
||||||
:PROPERTIES:
|
|
||||||
:CUSTOM_ID: web-application
|
|
||||||
:END:
|
|
||||||
|
|
||||||
* Difficulty: Hell
|
|
||||||
:PROPERTIES:
|
|
||||||
:CUSTOM_ID: difficulty--hell-be9a
|
|
||||||
:END:
|
|
||||||
|
|
||||||
This part will be for advanced Haskell code.
|
|
||||||
|
|
||||||
* Thanks
|
* Thanks
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: thanks
|
:CUSTOM_ID: thanks
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
Thanks to [[http://reddit.com/r/haskell][=/r/haskell=]] and [[http://reddit.com/r/programming][=/r/programming=]].
|
Thanks to [[http://reddit.com/r/haskell][=/r/haskell=]] and [[http://reddit.com/r/programming][=/r/programming=]].
|
||||||
Your comment were most than welcome.
|
Your comment were most than welcome.
|
||||||
|
|
Loading…
Reference in a new issue