racket/lazy

placeholder appears in result

Aperta

#3 aperta il 19 feb 2016

 (5 commenti) (0 reazioni) (0 assegnatari)Racket (7 fork)github user discovery
good first issuehelp wanted

Metriche repository

Star
 (7 stelle)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

This program, due to @jasonhemann, produces the output '((constant) . #<placeholder>).

#lang lazy
(require lazy/force)

(define (pull t$) (if (eq? (car t$) 'tag1) (pull (cdr t$)) t$))
(define (relρ a) (cons 'tag1 (cons 'tag2 (cons a (relρ a)))))
;; change either a in the body to 'const 

(!! 
 (let (($ (cdr (pull (relρ '(constant)))))) ;; s/'(constant)/'constant/
   (cons (car $) (cadr (pull (cdr $)))))) ;; change (car $) to 'other-constant
      ;; or replace the above with (cadr (pull (cdr $)))
      ;; or in-line the let in both places
      ;; also interesting, swap the order of args to cons

Guida contributor