wstecz

Konwencje w języku Racket

Konwencje nazewnicze

Wyrazy w identyfikatorach zwykle rozdziela się kreskami, czyli stosuje się konwencję kebab-case (popularne konwencje w innych językach to np. snake_case i camelCase), dzięki temu, że w dialektach Lispu dywizominus jest jednym ze znaków, który może występować w identyfikatorach. Przykłady: list-ref, string-append, remove-duplicates, dict-ref.

Nazwy funkcji zwracających wartości logiczne zwykle kończą się znakiem zapytania, a same funkcje nazywane są predykatami. Przykłady: null?, cons?, symbol?, number?, list?.

Nazwy funkcji konwertujących składają się zwykle z nazw dziedziny i przeciwdziedziny rozdzielonych strzałką złożoną z kreski i znaku większości. Przykłady: number->string, string->number, exact->inexact.

Nazwy konstruktorów kontraktów często kończą się prawym ukośnikiem i małą literą ce. Przykłady: cons/c, and/c, any/c. Wyjątki: listof, flat-rec-contract.

Konwencja zwracania wartości opcjonalnych

Pewne funkcje opisują działania, które mogą zakończyć się brakiem rezultatu, który nie jest błędem. W języku Racket zwykle takie funkcje zwracają wtedy #f. W typowanej wersji języka typ zwracany przez funkcje jest więc wtedy unią z typem False.

Przykłady: member, assoc, index-of, string->number.

Podobną konwencję stosuje Python, ale zwracaną wartością jest None, a unię z typem None można oznaczyć przez Optional. W językach statycznie typowanych zwykle wprowadza się konstruktory typu opcjonalnego.