{"id":34845,"date":"2019-10-31T22:00:43","date_gmt":"2019-10-31T19:00:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu\/"},"modified":"2019-10-31T22:00:43","modified_gmt":"2019-10-31T19:00:43","slug":"dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","title":{"rendered":"Deux histoires sur la mani\u00e8re dont ANKI peut vous aider \u00e0 apprendre une langue \u00e9trang\u00e8re et \u00e0 vous pr\u00e9parer pour un entretien","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>J'ai toujours pens\u00e9 qu'un programmeur paresseux est un bon programmeur. Pourquoi ? Parce que si on demande \u00e0 un programmeur travailleur de faire quelque chose, il ira le faire. Mais un programmeur paresseux passera 2 \u00e0 3 fois plus de temps, mais il \u00e9crira un script qui fera cela pour lui. Peut-\u00eatre que la premi\u00e8re fois, cela prendra de mani\u00e8re injustifi\u00e9e beaucoup de temps, mais dans le cas de t\u00e2ches r\u00e9p\u00e9titives, cette approche se rentabilise tr\u00e8s rapidement. Je me consid\u00e8re comme un programmeur paresseux. C'\u00e9tait une introduction, maintenant passons aux choses s\u00e9rieuses. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"istoriya-pervaya\">Premi\u00e8re histoire<\/h2>\n<p><\/p>\n<p>Il y a quelques ann\u00e9es, j'ai r\u00e9fl\u00e9chi \u00e0 la fa\u00e7on d'am\u00e9liorer mon anglais. Rien de mieux que de lire de la litt\u00e9rature ne m'est venu \u00e0 l'esprit. J'ai acquis un e-reader, t\u00e9l\u00e9charg\u00e9 des livres et j'ai commenc\u00e9 \u00e0 lire. Pendant ma lecture, je me suis constamment heurt\u00e9 \u00e0 des mots inconnus. Je les traduisais imm\u00e9diatement gr\u00e2ce aux dictionnaires int\u00e9gr\u00e9s de l'e-reader, mais j'ai remarqu\u00e9 une particularit\u00e9 : les mots ne voulaient pas \u00eatre retenus. Lorsque je rencontrais \u00e0 nouveau ce mot quelques pages plus tard, avec 90 % de probabilit\u00e9, j'avais de nouveau besoin d'une traduction, et ce \u00e0 chaque fois. Il en d\u00e9coulait que ce n'est pas suffisant de simplement traduire des mots inconnus pendant la lecture, il faut faire quelque chose d'autre. L'id\u00e9al serait de l'int\u00e9grer dans le quotidien et de commencer \u00e0 l'utiliser, mais je ne vis pas dans un pays anglophone et c'est peu probable. L\u00e0, je me suis rappel\u00e9 que j'avais lu un jour \u00e0 propos de <noindex>R\u00e9p\u00e9titions espac\u00e9es<\/noindex>.<\/p>\n<p><\/p>\n<p>Qu'est-ce que c'est et \u00e0 quoi \u00e7a sert ? Pour faire court, il y a <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D1%80%D0%B8%D0%B2%D0%B0%D1%8F_%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F\">la courbe de l'oubli<\/a><\/noindex>, ensuite une citation de Wikip\u00e9dia :<\/p>\n<p><\/p>\n<blockquote><p>D\u00e8s la premi\u00e8re heure, jusqu'\u00e0 60 % de toutes les informations re\u00e7ues sont oubli\u00e9es, apr\u00e8s 10 heures, il reste 35 % de ce qui a \u00e9t\u00e9 appris. Ensuite, le processus d'oubli se fait lentement, et apr\u00e8s 6 jours, environ 20 % du nombre total de syllabes initialement apprises restent en m\u00e9moire, et la m\u00eame quantit\u00e9 reste en m\u00e9moire apr\u00e8s un mois.<\/p><\/blockquote>\n<p>Et la conclusion ici <\/p>\n<p><\/p>\n<blockquote><p>Les conclusions qu'on peut tirer sur la base de cette courbe sont qu'il est n\u00e9cessaire de r\u00e9p\u00e9ter le mat\u00e9riel appris pour une m\u00e9morisation efficace.<\/p><\/blockquote>\n<p>Nous en sommes venus \u00e0 l'id\u00e9e <noindex>de la r\u00e9p\u00e9tition espac\u00e9e<\/noindex>.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/\">ANKi<\/a><\/noindex> c'est un programme totalement gratuit et open source qui r\u00e9alise l'id\u00e9e de la r\u00e9p\u00e9tition espac\u00e9e. En d'autres termes, des cartes m\u00e9moires informatis\u00e9es, avec une question d'un c\u00f4t\u00e9 et une r\u00e9ponse de l'autre. Comme vous pouvez \u00e9laborer des questions\/r\u00e9ponses \u00e0 l'aide de simples <em>html\/css\/javascript<\/em>, on peut dire qu'il poss\u00e8de des possibilit\u00e9s v\u00e9ritablement illimit\u00e9es. De plus, il est extensible avec des <noindex><a rel=\"nofollow\" href=\"https:\/\/ankiweb.net\/shared\/addons\/\">plugins<\/a><\/noindex>, et l'un d'eux nous sera tr\u00e8s utile par la suite.<\/p>\n<p><\/p>\n<p>Cr\u00e9er des cartes manuellement est long, ennuyeux, et avec une forte probabilit\u00e9, au bout d'un moment, vous abandonnerez cette t\u00e2che, alors je me suis demand\u00e9 \u00e0 un certain moment s'il \u00e9tait possible d'automatiser cela. La r\u00e9ponse est oui, c'est possible. Et je l'ai fait. Pour \u00eatre franc, c'est plus <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Proof_of_concept\">POC (Proof of concept)<\/a><\/noindex>, mais qui peut \u00eatre utilis\u00e9. S'il y a de l'int\u00e9r\u00eat de la part des utilisateurs et si d'autres d\u00e9veloppeurs s'y int\u00e9ressent, cela peut \u00eatre amen\u00e9 \u00e0 un produit final que m\u00eame des utilisateurs non techniques pourront utiliser. Actuellement, l'utilisation de mon utilitaire n\u00e9cessite certaines connaissances en programmation.<\/p>\n<p><\/p>\n<p>Je lis des livres avec le programme <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.neverland.alreader&amp;hl=en\">AIReader<\/a><\/noindex>. Il a la capacit\u00e9 de se connecter \u00e0 des dictionnaires externes, et lors de la traduction d'un mot, il enregistre le mot que vous avez appel\u00e9 pour la traduction dans un fichier texte. Il ne reste plus qu'\u00e0 traduire ces mots et \u00e0 cr\u00e9er des cartes ANKI.<\/p>\n<p><\/p>\n<p>Au d\u00e9part, j'ai essay\u00e9 d'utiliser pour la traduction <noindex><a rel=\"nofollow\" href=\"https:\/\/translate.google.com\/\">Google Translate<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.lingvolive.com\/en-us\">Lingvo API<\/a><\/noindex> etc. Mais avec des services gratuits, \u00e7a ne marchait pas. J'\u00e9puisais la limite gratuite d\u00e9j\u00e0 pendant le d\u00e9veloppement, de plus, selon les conditions de la licence, je n'avais pas le droit de mettre en cache les mots. \u00c0 un moment donn\u00e9, j'ai compris que je devais traduire les mots moi-m\u00eame. Finalement, un module a \u00e9t\u00e9 \u00e9crit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/dsl2html\">dsl2html<\/a><\/noindex> auquel on peut connecter <noindex><a rel=\"nofollow\" href=\"http:\/\/lingvo.helpmax.net\/en\/troubleshooting\/dsl-compiler\/dsl-dictionary-structure\/\">des dictionnaires DSL<\/a><\/noindex> et qui sait les convertir en <em>HTML<\/em> format. <\/p>\n<p><\/p>\n<p>Voici \u00e0 quoi ressemble un article de dictionnaire dans *<em>.html<\/em>, ma version compar\u00e9e \u00e0 celle de <noindex><a rel=\"nofollow\" href=\"http:\/\/goldendict.org\/\">GoldenDict<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Deux histoires sur la mani\u00e8re dont ANKI peut vous aider \u00e0 apprendre une langue \u00e9trang\u00e8re et \u00e0 vous pr\u00e9parer pour un entretien\" src=\"\/wp-content\/uploads\/2019\/06\/98317e694331c5764fe890827d59e3b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Avant de chercher un mot dans les dictionnaires connect\u00e9s, je le mets sous sa <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9B%D0%B5%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\">forme lexicale (lemme)<\/a><\/noindex> \u00e0 l'aide de la biblioth\u00e8que <noindex><a rel=\"nofollow\" href=\"https:\/\/stanfordnlp.github.io\/CoreNLP\/\">Stanford CoreNLP<\/a><\/noindex>. En r\u00e9alit\u00e9, c'est gr\u00e2ce \u00e0 cette biblioth\u00e8que que j'ai commenc\u00e9 \u00e0 programmer en Java et le plan initial \u00e9tait de tout \u00e9crire en Java, mais en cours de route, j'ai trouv\u00e9 la biblioth\u00e8que <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/joeferner\/node-java\">node-java<\/a><\/noindex> qui permet d'ex\u00e9cuter assez facilement du code Java \u00e0 partir de nodejs et une partie du code est \u00e9crite en JavaScript. Si j'avais trouv\u00e9 cette biblioth\u00e8que plus t\u00f4t, il n'y aurait pas eu une seule ligne \u00e9crite en Java. Un autre projet secondaire n\u00e9 dans le processus est la cr\u00e9ation <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/\">d'un d\u00e9p\u00f4t avec la documentation DSL<\/a><\/noindex> qui a \u00e9t\u00e9 trouv\u00e9e en ligne au format *<em>.chm<\/em>, convertie et mise en forme. Si l'auteur du fichier original, un utilisateur par le pseudo <strong>yozhic<\/strong> voit cet article, je lui adresse un grand merci pour le travail accompli, sans sa documentation, je n'aurais probablement rien r\u00e9ussi.<\/p>\n<p><\/p>\n<p>Donc, j'ai un mot en anglais, son article lexical au format *<em>.html<\/em>, il reste \u00e0 tout rassembler, cr\u00e9er des articles ANKI \u00e0 partir de la liste de mots et les int\u00e9grer dans la base de donn\u00e9es ANKI. \u00c0 cet effet, le projet suivant a \u00e9t\u00e9 cr\u00e9\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex>. Il peut prendre en entr\u00e9e une liste de mots, les traduire, cr\u00e9er des *<em>.html<\/em> articles ANKI et les enregistrer dans la base de donn\u00e9es ANKI. \u00c0 la fin de l'article, il y a des instructions sur son utilisation. Pour l'instant, c'est la deuxi\u00e8me histoire o\u00f9 les r\u00e9p\u00e9titions espac\u00e9es peuvent \u00eatre utiles.<\/p>\n<p><\/p>\n<h2 id=\"istoriya-vtoraya\">Deuxi\u00e8me histoire.<\/h2>\n<p><\/p>\n<p>Tous les individus \u00e0 la recherche d'une sp\u00e9cialit\u00e9 plus ou moins qualifi\u00e9e, notamment les programmeurs, se heurtent \u00e0 la n\u00e9cessit\u00e9 de se pr\u00e9parer pour les entretiens. De nombreux concepts demand\u00e9s lors des entretiens ne sont pas utilis\u00e9s dans la pratique quotidienne et sont oubli\u00e9s. Lors de ma pr\u00e9paration \u00e0 un entretien, en feuilletant un r\u00e9sum\u00e9, un livre, un manuel, j'ai constat\u00e9 qu'il prenait beaucoup de temps et d'attention de filtrer les informations que vous connaissez d\u00e9j\u00e0, car ce n'est pas toujours \u00e9vident et vous devez lire attentivement pour comprendre que c'est hors sujet. Lorsque vous abordez un sujet que vous avez vraiment besoin de revoir, il arrive tr\u00e8s souvent que vous soyez d\u00e9j\u00e0 fatigu\u00e9 et que la qualit\u00e9 de votre pr\u00e9paration en p\u00e2tisse. \u00c0 un moment, j'ai pens\u00e9 : pourquoi ne pas utiliser des cartes ANKI pour cela ? Par exemple, lors de la prise de notes d'un sujet, cr\u00e9er imm\u00e9diatement un r\u00e9sum\u00e9 sous forme de question et r\u00e9ponse, puis lors de la r\u00e9vision, vous saurez tout de suite si vous connaissez ou non la r\u00e9ponse \u00e0 cette question.<\/p>\n<p><\/p>\n<p>Le probl\u00e8me ne se posait que dans le fait que saisir les questions \u00e9tait tr\u00e8s long et ennuyeux. Pour faciliter le processus, j'ai <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex> ajout\u00e9 la fonctionnalit\u00e9 de convertir <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Markdown\">markdown<\/a><\/noindex> Texte dans les cartes ANKI. Tout ce que vous devez faire est d'\u00e9crire un grand fichier dans lequel les questions et les r\u00e9ponses seront marqu\u00e9es par une s\u00e9quence de caract\u00e8res convenue \u00e0 l'avance, permettant au parseur de comprendre o\u00f9 se trouve la question et o\u00f9 se trouve la r\u00e9ponse.<\/p>\n<p><\/p>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 ce fichier, vous lancez data2anki et il g\u00e9n\u00e8re les cartes ANKI. Le fichier original est facile \u00e0 modifier et \u00e0 partager, il suffit de supprimer la carte correspondante et de relancer le programme, et une nouvelle version sera cr\u00e9\u00e9e.<\/p>\n<p><\/p>\n<h2 id=\"ustanovka-i-polzovaniyu\">Installation et utilisation<\/h2>\n<p><\/p>\n<ol>\n<li>\n<p>Installation d'ANKI + AnkiConnect<\/p>\n<p><\/p>\n<ol>\n<li>T\u00e9l\u00e9chargez ANKI ici : <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/\">https:\/\/apps.ankiweb.net\/<\/a><\/noindex><\/li>\n<li>Installez le plugin AnkiConnect : <noindex><a rel=\"nofollow\" href=\"https:\/\/ankiweb.net\/shared\/info\/2055492159\">https:\/\/ankiweb.net\/shared\/info\/2055492159<\/a><\/noindex><\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Installation <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex><\/p>\n<p><\/p>\n<ol>\n<li>T\u00e9l\u00e9chargez <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex> depuis le d\u00e9p\u00f4t github\n<pre><code class=\"plaintext\">git clone https:\/\/github.com\/anatoly314\/data2anki<\/code><\/pre>\n<\/li>\n<li>Installez les d\u00e9pendances\n<pre><code class=\"plaintext\">cd data2anki &amp;&amp; npm install<\/code><\/pre>\n<\/li>\n<li>T\u00e9l\u00e9chargez les d\u00e9pendances java <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\/releases\/download\/0.1.0\/jar-dependencies.zip\">https:\/\/github.com\/anatoly314\/data2anki\/releases\/download\/0.1.0\/jar-dependencies.zip<\/a><\/noindex><\/li>\n<li>D\u00e9compressez <strong>jar-dependencies.zip<\/strong> et placez son contenu dans <strong>data2anki\/java\/jars<\/strong><\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Utilisation pour la traduction de mots :<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Dans le fichier <strong>data2anki\/config.json<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>dans la cl\u00e9 <strong>mode<\/strong> indiquez la valeur <strong>dsl2anki<\/strong><\/p>\n<p>\n<\/li>\n<li>\n<p>dans la cl\u00e9 <strong>modules.dsl.anki.deckName<\/strong> et <strong>modules.dsl.anki.modelName<\/strong> indiquez, respectivement, <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#decks\">Nom de la carte<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#note-types\">Nom du mod\u00e8le<\/a><\/noindex> (doivent d\u00e9j\u00e0 \u00eatre cr\u00e9\u00e9s avant la cr\u00e9ation des cartes). Actuellement, seul le mod\u00e8le de type <strong>Basique<\/strong>:<\/p>\n<p><\/p>\n<blockquote><p>a des champs de devant et de derri\u00e8re, et cr\u00e9era une carte. Le texte que vous saisissez \u00e0 l'avant appara\u00eetra \u00e0 l'avant de la carte, et le texte que vous saisissez \u00e0 l'arri\u00e8re appara\u00eetra \u00e0 l'arri\u00e8re de la carte. <\/p><\/blockquote>\n<p>o\u00f9 le mot source est le <em>champ avant<\/em>, et la traduction sera dans <em>champ arri\u00e8re<\/em>. <\/p>\n<p><\/p>\n<p>Il n'y a aucun probl\u00e8me \u00e0 ajouter le support <strong>Basic (et carte invers\u00e9e)<\/strong>, o\u00f9 pour chaque mot et traduction, une carte inverse sera cr\u00e9\u00e9e, o\u00f9 il faudra se souvenir du mot original \u00e0 partir de la traduction. Il suffit d'avoir du temps et de l'envie.<\/p>\n<p>\n<\/li>\n<li>\n<p>dans la cl\u00e9 <strong>modules.dsl.dictionariesPath<\/strong> indiquez un tableau avec les dictionnaires *<em>.dsl<\/em> connect\u00e9s. Chaque dictionnaire connect\u00e9 est un r\u00e9pertoire contenant des fichiers de dictionnaire conform\u00e9ment au format : <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/#dict.html\">Structure du dictionnaire DSL<br \/>\n<\/a><\/noindex><\/p>\n<p>\n<\/li>\n<li>\n<p>dans la cl\u00e9 <strong>modules.dsl.wordToTranslatePath<\/strong> indiquez le chemin vers la liste des mots que vous souhaitez traduire.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p>\n<\/li>\n<li>Lancez lorsque l'application ANKI fonctionne \n<pre><code class=\"plaintext\">node data2ankiindex.js<\/code><\/pre>\n<\/li>\n<li>PROFIT !!!<\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Utilisation pour cr\u00e9er des cartes \u00e0 partir de markdown<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Dans le fichier <strong>data2anki\/config.json<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>dans la cl\u00e9 <strong>mode<\/strong> indiquez la valeur <strong>markdown2anki<\/strong><\/li>\n<li>dans la cl\u00e9 <strong>modules.markdown.anki.deckName<\/strong> et <strong>modules.dsl.anki.modelName<\/strong> indiquez, respectivement, <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#decks\">Nom de la carte<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#note-types\">Nom du mod\u00e8le<\/a><\/noindex> (doivent d\u00e9j\u00e0 \u00eatre cr\u00e9\u00e9s avant la cr\u00e9ation des cartes). Pour <strong>markdown2anki<\/strong> le mode, seul le mod\u00e8le de type <strong>Basique<\/strong>.<\/li>\n<li>\n<p>dans la cl\u00e9 <strong>modules.markdown.selectors.startQuestionSelectors<\/strong> et <strong>modules.markdown.selectors.startAnswerSelectors<\/strong> indiquez les s\u00e9lecteurs que vous utilisez pour marquer le d\u00e9but de la question et de la r\u00e9ponse, respectivement. La ligne contenant le s\u00e9lecteur ne sera pas analys\u00e9e et ne sera pas incluse dans la carte, le parseur commencera avec la ligne suivante. <\/p>\n<p><\/p>\n<h5 id=\"naprimer-vot-eta-kartochka-voprosotvet\">Par exemple, cette carte question\/r\u00e9ponse :<\/h5>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Deux histoires sur la mani\u00e8re dont ANKI peut vous aider \u00e0 apprendre une langue \u00e9trang\u00e8re et \u00e0 vous pr\u00e9parer pour un entretien\" src=\"\/wp-content\/uploads\/2019\/06\/1d32d4c8b44e62027350031090405dd2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h5 id=\"budet-vyglyadet-v-markdown-sleduyuschim-obrazom\">sera affich\u00e9e en markdown de la mani\u00e8re suivante :<\/h5>\n<pre>\n#QUESTION#\n## Question 5. Write a mul function which will work properly when invoked with following syntax.\n\n```javascript\nconsole.log(mul(2)(3)(4)); \/\/ output : 24\nconsole.log(mul(4)(3)(4)); \/\/ output : 48\n```\n#ANSWER#\nBelow is the code followed by the explanation of how it works:\n\n```javascript\nfunction mul (x) {\n  return function (y) { \/\/ anonymous function\n    return function (z) { \/\/ anonymous function\n      return x * y * z;\n    };\n  };\n}\n```\n\nHere the `mul` function accepts the first argument and returns the anonymous function which takes the second parameter and returns the anonymous function which takes the third parameter and returns the multiplication of arguments which is being passed in successive\n\nIn Javascript function defined inside has access to outer function variable and function is the first class object so it can be returned by the function as well and passed as an argument in another function.\n- A function is an instance of the Object type\n- A function can have properties and has a link back to its constructor method\n- A function can be stored as variable\n- A function can be pass as a parameter to another function\n- A function can be returned from another function\n<\/pre>\n<blockquote><p>L'exemple est pris ici : <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ganqqwerty\/123-Essential-JavaScript-Interview-Questions\">123-Questions d'Entretien JavaScript<\/a><\/noindex><\/p><\/blockquote>\n<p>Il y a aussi un fichier avec des exemples dans le dossier du projet <code>examples\/markdown2anki-example.md<\/code><\/p>\n<p>\n<\/li>\n<li>dans la cl\u00e9 <strong>modules.markdown.pathToFile<\/strong><br \/>\nindiquez le chemin vers le fichier o\u00f9 se trouve *<em>.md<\/em> fichier avec des questions\/r\u00e9ponses<\/li>\n<\/ul>\n<p>\n<\/li>\n<li>Lancez lorsque l'application ANKI fonctionne\n<pre><code class=\"plaintext\">node data2ankiindex.js<\/code><\/pre>\n<\/li>\n<li>PROFIT !!!<\/li>\n<\/ol>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"vot-tak-eto-vyglyadit-na-mobilnom-telefone\">Voici \u00e0 quoi cela ressemble sur un t\u00e9l\u00e9phone mobile :<\/h4>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"D35VtcTtxrs\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/D35VtcTtxrs\/hqdefault.jpg\" alt=\"Lire la vid\u00e9o\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2 id=\"rezultat\">R\u00e9sultat<\/h2>\n<p><\/p>\n<p>Les cartes ANKI obtenues sur la version desktop se synchronisent sans probl\u00e8me avec le cloud ANKI (gratuit jusqu'\u00e0 100 Mo), apr\u00e8s quoi vous pouvez les utiliser partout. Il existe des clients pour Android et iPhone, et vous pouvez \u00e9galement les utiliser dans le navigateur. En cons\u00e9quence, si vous avez du temps \u00e0 perdre, au lieu de faire d\u00e9filer sans but Facebook ou de regarder des chats sur Instagram, vous pouvez apprendre quelque chose de nouveau. <\/p>\n<p><\/p>\n<h2 id=\"epilog\">\u00c9pilogue<\/h2>\n<p><\/p>\n<p>Comme je l'ai d\u00e9j\u00e0 mentionn\u00e9, c'est plut\u00f4t un POC fonctionnel qu'un produit fini. Environ 30% de la norme DSL du parseur n'est pas impl\u00e9ment\u00e9e, et donc <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/#tag_service.html#alt\">par exemple, toutes les articles de dictionnaires qui existent dans les dictionnaires ne peuvent pas \u00eatre trouv\u00e9s<\/a><\/noindex>, il y a aussi l'id\u00e9e de le r\u00e9\u00e9crire en <em>JavaScript<\/em>, car on veut &#171;consistency&#187;, et de plus, il n'est pas tr\u00e8s bien optimis\u00e9 en ce moment. Actuellement, le parseur construit un arbre, ce qui me semble superflu et complique le code. <strong>markdown2anki<\/strong> mode image, les images ne sont pas analys\u00e9es. J'essaierai de continuer \u00e0 peaufiner, mais, comme j'\u00e9cris pour moi-m\u00eame pour l'instant, je vais prioriser la r\u00e9solution des probl\u00e8mes que je rencontrerai moi-m\u00eame, mais si quelqu'un veut aider, il est le bienvenu. Si vous avez des questions concernant le programme, je serai ravi d'aider via des<\/p>\n<p><\/p>\n<p>propositions ouvertes dans les projets concern\u00e9s. Pour toute autre critique et suggestion, \u00e9crivez ici. J'esp\u00e8re que ce projet sera utile \u00e0 quelqu'un.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/454236\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442. \u0410 \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442 \u0432 2-3 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u2014 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u043d\u0435\u0433\u043e. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043d\u0430 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043d\u0435\u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26237,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a ANKI \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:00:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Deux histoires sur la fa\u00e7on dont ANKI peut vous aider \u00e0 apprendre une langue \u00e9trang\u00e8re et \u00e0 vous pr\u00e9parer pour un entretien | ProHoster","description":"J'ai toujours pens\u00e9 qu'un programmeur paresseux est un bon programmeur. Pourquoi ? Parce que si vous demandez \u00e0 un travailleur acharn\u00e9 de faire quelque chose, il s'y mettra et le fera.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a ANKI \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e | ProHoster","og:description":"\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:00:43+00:00","article:modified_time":"2019-10-31T19:00:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34845","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:49:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:14:05","updated":"2026-01-21 20:49:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/34845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=34845"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/34845\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/26237"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=34845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=34845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=34845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}