guise-lang/examples/modules.guise

20 lines
531 B
Plaintext
Executable File

;; Define a geometry module with public and private functions
(define module geometry
(import math)
;; Public function - can be used from outside
(define public square (number -> number)
(dup *))
;; Public function using arithmetic
(define public cube (number -> number)
(dup dup * *))
;; Private helper function - only visible within module
(define private double (number -> number)
(2 *))
;; Public function using private helper
(define public quadruple (number -> number)
(double double)))