Можете ли вы вернуть значение в схеме, которое не будет напечатано в списке? - PullRequest
4 голосов
/ 21 сентября 2010

Я пытаюсь вернуть невидимое значение в функции схемы, но не могу получить ничего, что WONT было бы выведено на экран, что мне и нужно.Есть ли в схеме значение, которое можно добавить в список, который не будет напечатан при вызове (отображения)?

Ответы [ 2 ]

1 голос
/ 21 сентября 2010

Вместо того, чтобы пытаться создать невидимый тип, почему бы вам не использовать фильтр для идентификации и удаления значений, которые вы не хотите создавать, чтобы создать новый список, который затем вы можете делать с любыми, например, печать на экран.

(define (want-this? thing)
  ;; write a function that takes one
  ;;  parameter and returns a boolean
  ;;  true if you want it
  ;;  false if you don't
  )
(filter want-this?  '(v a l u e s))

Также см. Документы: http://docs.racket -lang.org / reference / pair.html? Q = фильтр #% 28def ._% 28% 28lib._racket / private / base..rkt% 29._filter% 29% 29

0 голосов
/ 21 сентября 2010

Нет стандартного способа сделать это.Вы можете переопределить процедуру display (или любой другой выходной вызов вашей Схемы), чтобы она не печатала объекты определенного типа.

(define display-old display)

(define (display obj)
     (if (not (invisible? obj))
         (display-old obj))) 
...