1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
;; -*-theme-d-*-
;; Copyright (C) 2008-2013, 2021 Tommi Höynälänmaa
;; Distributed under GNU General Public License version 3,
;; see file doc/GPL-3.
;; Expected results: translation and running OK
(define-proper-program (tests test6)
(import (standard-library core)
(standard-library console-io))
(define-param-class :triplet
(parameters %type1 %type2 %type3)
(attributes equal-by-value)
(fields
(first %type1 public public)
(second %type2 public public)
(third %type3 public public)))
(define-param-proc-alt make-triplet (%arglist)
(lambda (((arglist (splice %arglist)))
(:triplet (splice %arglist))
pure)
(create (:triplet (splice %arglist))
(car arglist)
(car (cdr arglist))
(car (cdr (cdr arglist))))))
(define main
(lambda (() <integer> nonpure)
(let ((result
(make-triplet 1 2 3)))
(console-display (field-ref result 'first))
(console-newline)
(console-display (field-ref result 'second))
(console-newline)
(console-display (field-ref result 'third))
(console-newline))
0)))
|