You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Quark (langage)

De EverybodyWiki Bios & Wiki
Aller à :navigation, rechercher


Quark
Logo.
[[Fichier:Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value).|280px|alt=Erreur Lua dans Module:Wikidata à la ligne 606 : attempt to index field 'wikibase' (a nil value).|Erreur Lua dans Module:Wikidata à la ligne 606 : attempt to index field 'wikibase' (a nil value).]]
Erreur Lua dans Module:Wikidata à la ligne 606 : attempt to index field 'wikibase' (a nil value).

Date de première version
Paradigmes Impératif, orienté objet, fonctionnel et interprété
Auteur Thomas Vergne
Développeurs Quark language
Dernière version 2.0.0
Version en développement Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value).
Typage Dynamique
Influencé par Lisp [1] et TypeScript
Écrit en Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value)./Erreur Lua dans Module:Wikidata à la ligne 118 : attempt to index field 'wikibase' (a nil value).
Système d'exploitation Multi-plateforme
Licence Licence MIT
Site web https://quark-lang.dev/
Extensions de fichiers .qrk

Quark est un langage de programmation interprété influencé par Lisp et écrit en TypeScript. L'objectif principal de Quark est de proposer un langage qui allie simplicité et productivité en plus de sa syntaxe simple[2].

Il né au début de l'année 2021 et est maintenu à jour par la communauté GitHub sur le dépôt officiel de Quark.

Concepts de programmation[modifier]

La mise en forme de cette section ne suit pas les recommandations concernant la typographie, les liens internes, etc. (mai 2021). Découvrez comment la « wikifier ».

Hello World[modifier]

(print "Hello World!")

ou

(puts "Hello World!")

Boucles[modifier]

{
  (import "assert.qrk")
  (import "list.qrk")

  (describe "Foreach tests" (fn () {
    (let users (list "Thomas" "Ness" "ImRobot"))
    (let reproductionUsers (list))
    (foreach users (fn (user) {
      (push reproductionUsers user)
    }))
    (it "should return same array as looped" (fn () {
      (return (assert:equal users reproductionUsers))
    }))
  }))
}

Push dans une liste[modifier]

{
  (import "assert.qrk")
  (import "list.qrk")

  (describe "Push tests" (fn () {
    (let array (list))
    (let string "")
    (it "should return equal lists" (fn () {
      (return (assert:equal (push array "test") (list "test")))
    }))
    (it "should return equal strings" (fn () {
      (return (assert:equal (push string "t") "t"))
    }))
  }))
}

Longueur de liste[modifier]

{
  (import "assert.qrk")
  (import "list.qrk")

  (describe "Length tests" (fn () {
    (it "should return correct length of text" (fn () {
      (return (assert:equal (length "test") 4))
    }))
    (it "should return 0 if no arguments precised" (fn () {
      (return (assert:equal (length) 0))
    }))
    (it "should return correct list length" (fn () {
      (return (assert:equal (length (list "test" "test" "test")) 3))
    }))
  }))
}

Récursivité[modifier]

{
  (import "../sample/factorial.qrk")
  (import "../sample/fibonacci.qrk")
  (import "assert.qrk")

  (describe "Factorial tests" (fn () {
    (it "should return correct factorial result" (fn () {
      (return (assert:equal (factorial 5) 120))
    }))
    (it "should return one if argument is 0" (fn () {
      (return (assert:equal (factorial 0) 1))
    }))
  }))
}

Notes et références[modifier]

  1. « Quark language », sur https://quark-lang.dev/
  2. Quark#readme, Quark language, (lire en ligne)

Annexes[modifier]

Liens externes[modifier]



Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).


Cet Article wiki "Quark (langage)" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques et/ou la page Edithistory:Quark (langage).