racket skill bijgewerkt

This commit is contained in:
2026-08-31 10:01:19 +02:00
parent 389b6297ca
commit bb7fe60935
+23 -5
View File
@@ -52,7 +52,7 @@ Voor publieke functies:
- Houd `provide` en `require` eenvoudig en overzichtelijk. - Houd `provide` en `require` eenvoudig en overzichtelijk.
- Voeg geen extra framework, wrapperlaag of generieke infrastructuur toe zonder concrete noodzaak. - Voeg geen extra framework, wrapperlaag of generieke infrastructuur toe zonder concrete noodzaak.
## pre/postcondities ## Beschrijving van functies
Geëxporteerde functies/procedures/classes of functies/procedures/classes die daarvoor duidelijk in Geëxporteerde functies/procedures/classes of functies/procedures/classes die daarvoor duidelijk in
aanmerking komen, d.w.z. die die provided zijn of naar verwachting zullen worden, moeten gedocumenteerd worden. aanmerking komen, d.w.z. die die provided zijn of naar verwachting zullen worden, moeten gedocumenteerd worden.
@@ -60,20 +60,31 @@ Zowel in een module scribble als in de code zelf. In het engels.
In de code zelf: minimaal: In de code zelf: minimaal:
```racket
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; goal : <doel> ; goal : <doel>
; pre : <preconditie(s)> ; pre : <preconditie(s)>
; post : <postconditie(s)> ; post : <postconditie(s)>
; [result:] <resultaat en onder welke conditie> ; [result:] <resultaat en onder welke conditie>
; [internals:]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
```
Als een functie/procedure/class overduidelijk in aanmerking komt voor 'provide' en hij staat er nog niet in.
Verzamel dan de lijst en vraag of je ze moet toevoegen.
Over het algemeen wil ik de internals van een functie weten. Hoe werkt het en waarom werkt. Over het algemeen wil ik de internals van een functie weten. Hoe werkt het en waarom werkt.
Beschrijf die in de sectie 'internals'. Beschrijf die in de sectie 'internals'.
; [internals:] ### Beschrijving van functies in het algemeen
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Als een functie/procedure/class overduidelijk in aanmerking komt voor 'provide' en hij staat er nog niet in. Iedere functie die wordt gedefinieerd, tenzij een lokale helper functie van maximaal 5 regels
Verzamel dan de lijst en vraag of je ze moet toevoegen. krijgt in ieder geval één commentregel met:
```racket
;;; <explain what this function does and it's meaning in the module.
;;; In about 1 to 3 lines.
```
## Procedures en control flow ## Procedures en control flow
@@ -96,6 +107,13 @@ Verzamel dan de lijst en vraag of je ze moet toevoegen.
(else ... alleen als het nodig is)) (else ... alleen als het nodig is))
``` ```
## Gebruik van lokale helper functies
- Gewone lokale waarden: let/let*.
- Een kleine lokale helper: (let ((helper (λ (...) ...))) ...) is prima.
- Een omvangrijke lokale helper die echt bij één closure hoort: een interne (define (helper ...) ...) is juist duidelijker en toegestaan.
## Mate van abstractie vs leesbaarheid ## Mate van abstractie vs leesbaarheid
Liever concreet dan abstract. Liever concreet dan abstract.