BERKIOSDocs
Core

Core : fonctions et modules

Écrire une fonction

Une fonction déclare ses paramètres et son type de retour :

fonction calculer_remise(prix: Decimal, pourcentage: Decimal) -> Decimal
  retourner prix * pourcentage / 100

Appelez-la comme n'importe quelle valeur : soit remise = calculer_remise(125.0, 15.0).

Découper un programme en modules

Quand un programme grandit, séparez-le en plusieurs fichiers. Voici deux fichiers dans le même dossier.

maths-fr.bks

module "Mathématiques"
fonction doubler(nombre: Decimal) -> Decimal
  retourner nombre * 2

fonction calculer_remise(prix: Decimal, pourcentage: Decimal) -> Decimal
  retourner prix * pourcentage / 100

main-fr.bks

module "Application de vente"
importer "maths-fr.bks"

fonction principale() -> Entier
  soit prix = 125.0
  soit pourcentage = 15.0
  soit remise = calculer_remise(prix, pourcentage)
  soit total = prix - remise
  afficher "Remise :"
  afficher remise
  afficher "Total à payer :"
  afficher total
  afficher doubler(10)
  retourner 0
berkios core main-fr.bks

Résultat :

Remise :
18.75
Total à payer :
106.25
20

Règles des imports

  • importer "fichier.bks" est résolu par rapport au fichier qui l'écrit.
  • Les cycles d'import (A importe B qui importe A) sont détectés et refusés.
  • Alias selon la langue : import (anglais), importar (espagnol), agiza (swahili).

Fonctions génériques

Une fonction générique accepte plusieurs types. Le compilateur devine T à partir des arguments puis vérifie les types :

type Boite<T>
  valeur: T

fonction principale() -> Entier
  soit boite: Boite<Entier> = Boite(42)
  afficher boite.valeur
  retourner boite.valeur

Suite : Types, classes et héritage.