Les langages avec des vraies macros , comme Collin Lisp que je cite permettent de tout programmer de façon assez agréable. Par exemple avec cl-async, on peut presque réutiliser son code synchrone avec des promises, il suffit presque de changer les let en alet;)
Avec l'extension de syntaxe de Lwt aussi ;-).
Dans utop, il suffit de faire :
#require"lwt";;#require"lwt.ppx";;
Pour une version avec bind, proche de la syntaxe NodeJS, où on passe la promesse à une fonction anonyme :
letmain()=letopenLwtinLwt_io.print"Entrer votre nom: ">>=fun()->Lwt_io.(read_linestdin)>>=funnom->Lwt_io.printlf"Votre nom est: %s"nom;;valmain:unit->unitLwt.t=<fun>let()=Lwt_main.run(main());;Entrervotrenom:kantienVotrenomest:kantien
La même, mais avec l'extension de syntaxe : on retrouve une forme proche de celle d'un code synchrone (les let x = e in sont remplacés par des let%lwt x = e in) :
letmain()=let%lwt()=Lwt_io.print"Entrer votre nom: "inlet%lwtnom=Lwt_io.(read_linestdin)inLwt_io.printlf"Votre nom est: %s"nom;;valmain:unit->unitLwt.t=<fun>let()=Lwt_main.run(main());;Entrervotrenom:kantienVotrenomest:kantien
[^] # Re: Sympa ton journal
Posté par kantien . En réponse au journal Des vieilles bases d'unix à la hype reactive actuelle. Évalué à 2.
Avec l'extension de syntaxe de Lwt aussi ;-).
Dans
utop, il suffit de faire :Pour une version avec
bind, proche de la syntaxe NodeJS, où on passe la promesse à une fonction anonyme :La même, mais avec l'extension de syntaxe : on retrouve une forme proche de celle d'un code synchrone (les
let x = e insont remplacés par deslet%lwt x = e in) :Il y a une forme (à base de
%lwtà rajouter) pour presque toutes les constructions syntaxiques du langage.Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.