Abstract type: Difference between revisions

renamed Scheme back to Racket
(added Agda example)
(renamed Scheme back to Racket)
Line 1,217:
for i in self.contents:
print i,</lang>
 
=={{header|SchemeRacket}}==
 
<lang scheme>#lang racket
 
(define animal-interface (interface () say))
 
(define cat% (class* object% (animal-interface) (super-new))) ;; error
 
(define cat% (class* object% (animal-interface)
(super-new)
(define/public (say)
(display "meeeeew!"))))
 
(define tom (new cat%))
(send tom say)</lang>
 
=={{header|REBOL}}==
Line 1,330 ⟶ 1,346:
 
When integrating with Java, traits without implementation appear as interfaces.
 
=={{header|Scheme}}==
(moved from Racket)
{{works with|Racket}}
<lang scheme>
#lang racket
 
(define animal-interface (interface () say))
 
(define cat% (class* object% (animal-interface) (super-new))) ;; error
 
(define cat% (class* object% (animal-interface)
(super-new)
(define/public (say)
(display "meeeeew!"))))
 
(define tom (new cat%))
(send tom say)
</lang>
 
=={{header|Tcl}}==
Anonymous user