Concept

Aldor

Résumé
Aldor is a programming language. It is the successor of A# as the extension language of the Axiom computer algebra system. Aldor combines imperative, functional, and object-oriented features. It has an elaborate type system, allowing types to be used as first-class values. Aldor's syntax is heavily influenced by Pascal, but it is optionally indentation-sensitive, using whitespace characters and the off-side rule, like Python. In its current implementation, it is compiled, but an interactive listener is provided. Aldor is distributed as free and open-source software, under the Apache License 2.0. The Hello world program looks like this: #include "aldor" #include "aldorio" stdout < "Hello, world!" < newline; Example of dependent types (from the User Guide): #include "aldor" #include "aldorio" #pile sumlist(R: ArithmeticType, l: List R): R == s: R := 0; for x in l repeat s := s + x s import from List Integer, Integer, List SingleFloat, SingleFloat stdout < sumlist(Integer, [2,3,4,5]) < newline stdout < sumlist(SingleFloat, [2.0, 2.1, 2.2, 2.4]) < newline 99 Bottles of Beer: #include "aldor" #include "aldorio" import from Integer, String; bob(n: Integer): String == { b: String := " bottle"; if n ~= 1 then b := b + "s"; b + " of beer"; } main(): () == { n: Integer := 99; otw: String := " on the wall"; refrain while n > 0 repeat { stdout < n < bob(n) < otw < ", " < n < bob(n) < "." < newline; stdout < "Take one down and pass it around, "; n := n - 1; if n > 0 then stdout < n; else stdout < "no more"; stdout < bob(n) < otw < "." < newline; stdout < newline; } last verse stdout < "No more" < bob(n) < otw < ", no more" < bob(n) < "." < newline; stdout < "Go to the store and buy some more, "; n: Integer := 99; stdout < n < bob(n) < otw < ".
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.