То, когда использовать (оценивает …) (определять-значения …) в Схеме

Когда в сомнении, KISS - почему атрибуты соединения и элементы, когда у Вас нет ясной причины использовать атрибуты. Если Вы позже решаете определить XSD, который закончит тем, что был инструментом для очистки также. Тогда, если Вы еще позже решаете генерировать структуру класса от своего XSD, который будет более простым также.

5
задан z5h 6 November 2009 в 05:12
поделиться

2 ответа

define-values ​​ - это удобство, которое позволяет напрямую связывать переменные с результатами выражения. Это избавит вас от необходимости печатать, поскольку вам не нужно явно распаковывать список. Не думаю, что есть ситуации, когда плохо или невозможно составить единый список ценностей. Фактически, это будет более портативным, чем define-values ​​.

6
ответ дан 13 December 2019 в 19:29
поделиться

Здесь мой исходный пост по теме; он скопирован ниже.

В этом потоке в comp.lang.scheme обсуждаются средства для возврата нескольких значений. В R6RS есть, казалось бы, 3 решения:

(import (rnrs))

; let-values + values
(define (foo1)
  (values 1 2 3))

(let-values (((a b c) (foo1)))
  (display (list a b c))
  (newline))

; cps
(define (foo2 k)
  (k 1 2 3))

(foo2 (lambda (a b c) 
        (display (list a b c))
        (newline)))

; list
(define (foo3)
  (list 1 2 3))
(let ((result (foo3)))
  (display result)
  (newline))

точка Пер Азиза и Аарона; вам следует использовать подход, который передает наибольшее количество информации читателю.

5
ответ дан 13 December 2019 в 19:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: