Updated, removed projects sections.
This commit is contained in:
parent
f95b37c771
commit
bd111cf45c
|
@ -72,24 +72,22 @@ Our main rule is to use as few features of a programming language as
|
|||
possible to achieve your goal.
|
||||
This is a kind of merge between minimalism and pragmatism that in the end
|
||||
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.
|
||||
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
|
||||
languages.
|
||||
|
||||
So enough talk, here is my old article new again, with just a few changes
|
||||
and cleanup.
|
||||
Also, I will try to go a bit further than before.
|
||||
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.
|
||||
So enough talk, here is my old article updated with a few changes and
|
||||
cleanups.
|
||||
I also added a section about how to create a new project template with nix.
|
||||
|
||||
My .02 for "Single Page Application" choice is to use Purescript with the
|
||||
halogen framework.
|
||||
Purescript is really awesome as well as halogen.
|
||||
I will try to write other articles about how to write a real program in
|
||||
Haskell.
|
||||
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
|
||||
|
||||
* Introduction
|
||||
|
@ -162,7 +160,7 @@ The article contains five parts:
|
|||
|
||||
- More on infinite tree; a more math oriented discussion about
|
||||
infinite trees
|
||||
** Helpers :noexport:
|
||||
** Helpers :noexport:
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: helpers
|
||||
:END:
|
||||
|
@ -2306,7 +2304,7 @@ After a bit of experience, most Haskellers can avoid memory leaks naturally.
|
|||
|
||||
* Dive into the impure
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: hell-difficulty-part
|
||||
:CUSTOM_ID: dive-into-the-impure
|
||||
:END:
|
||||
|
||||
Congratulations for getting so far!
|
||||
|
@ -3466,29 +3464,23 @@ monads[fn:7]!
|
|||
|
||||
* Start swimming
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: difficulty--hell
|
||||
:CUSTOM_ID: start-swimming
|
||||
:END:
|
||||
|
||||
If you come this far, you can really congratulate yourself.
|
||||
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.
|
||||
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.
|
||||
Mostly because dependency management will be a lot easier.
|
||||
|
||||
#+begin_notes
|
||||
If you find those part too hard, do not feel discouraged though, most
|
||||
Haskeller I know had to dig into Haskell at least two or three times before
|
||||
it really "clicked" for them.
|
||||
#+end_notes
|
||||
I first intended to provide a lot more informations about how to create a
|
||||
project and provide a few project examples.
|
||||
But it occurs this is harder than I first expected.
|
||||
So I will just provide the introduction about how to create a starting
|
||||
point with many pointers for other possible options.
|
||||
|
||||
** Start a new project
|
||||
: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]]
|
||||
|
||||
** Command line application
|
||||
* Conclusion
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: command-line-application
|
||||
:CUSTOM_ID: conclusion
|
||||
:END:
|
||||
|
||||
One of the simplest while still useful command line utility I can think of
|
||||
is a simple strong password generator.
|
||||
This was a re-written fast Haskell tutorial.
|
||||
I will certainly complete this with more advanced tutorial explaining how
|
||||
to write a few Haskell projects.
|
||||
|
||||
*** Password Generator
|
||||
: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 for reading it.
|
||||
|
||||
* Thanks
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: thanks
|
||||
:END:
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: thanks
|
||||
:END:
|
||||
|
||||
Thanks to [[http://reddit.com/r/haskell][=/r/haskell=]] and [[http://reddit.com/r/programming][=/r/programming=]].
|
||||
Your comment were most than welcome.
|
||||
|
|
Loading…
Reference in a new issue