Insérer avec classe dans VIM

tl;dr : sous vi utilisez a au lieu de i

Tout le monde utilise VI pour éditer ses fichiers de configs sous linux ou les fichiers sur un serveur distant (il y a aussi nano qui marche super bien). Moi personnellement je code aussi du php/js avec. Pour insérer du texte on utilise la touche i comme insérer puis ESC pour quitter le mode insertion. Je vais parler des autres touches pour insérer du texte.

Il y a 6 touches pour insérer

Cloud9 un workspace en ligne

Je me suis inscris sur FreecodeCamp. C’est gratuit et annonce une formation du Bootstrap/Nodejs/React/D3/javascript. Bon au moment ou j’écris ces lignes D3 et React sont en coming soon (c’est dommage c’était surtout ca qui m’intéressait). L’idée est de former des développeur back et front pour aider des associations. L’idée me semble bonne.

FreeCodeCamp

Les Monades: Applicative et les listes

Dans le précédent post, j’avais parlé des applicatives sur les Maybes.

Nous allons voir ensemble comment les applicatives se comportent sur les listes.

Rappelons que l’idée des applicatives c’est

  • ma valeur est dans un container
  • et ma fonction que je vais appliquer est aussi dans un container

Pour la liste c’est un peu près la même idée.

  • mes valeurs sont dans une collection
  • mes fonctions sont aussi dans une collection

Haskell : Stack

Introduction

Je ne développe pas en Haskell mais je regarde beaucoup. La série que j’écris sur la programmation fonctionnelle me force à regarder le langage de plus près. Le monde haskell s’est enrichi d’un nouvel outil Stack.

Stack et Haskell

Stack est un logiciel qui gère l’installation/les packages/la création/le build/les tests d’un projet Haskell.

Il a plusieurs avantages:

  • Il a été pensé pour automatiser le build.
  • Il a une ligne de commande sympathique que nous allons voir par la suite.
  • Il utilise un fichier stack.yml c’est l’équivalent d’un composer.json en php ou un package.json en node.
  • Tout est installé dans le ~/.stack tout les programmes sont isolés et n’interfèrent pas avec les autres logiciels déjà pré installés.

Les monades 5: les applicatives

Nous allons voir les foncteurs applicatifs.

Reprenons le container Maybe

avec évaluation partielle

Ce que j’aimerai c’est pouvoir faire ce genre d’opération

1
2
3
Maybe(3) + Maybe(3) = Maybe(6)
Container(4) * Container(5) = Container(40)
str_repeat(Maybe(".oOo"), Maybe("3")) = Maybe(".oOo.oOo.oOo");

La bonne nouvelle c’est que c’est possible.

Les Monades : Evaluation partielle

Interlude.

J’ai besoin pour le prochain chapitre d’introduire la notion d’application partielle. Cela consiste à évaluer une partie de la fonction même si je n’ai pas tous les arguments.

Soit la fonction suivante.

1
2
3
function plus($a, $b) {
   return $a + $b;
}

Que donne l’exécution ?

1
$result = plus(10);

Les Monades : Les listes

Nous continuons notre exploration des Monades/Functors, nous allons parler de Collection, de lapins, de marteaux et de non-déterminisme.

Voici notre nouveau container Le container List. Il prend en entrée un tableau (Array) ou en Php un Traversable. Le container collection

Nous allons voir ensemble les listes, Collections. Nous allons voir le map, le bind nous allons voir que le comportement n’est pas exactement le même..