我在搜索的这个程序的交互窗口中输入什么?对不起初学者

时间:2014-10-26 12:15:19

标签: scheme

我不知道如何在堆栈中编辑对不起这个..但我想知道我该怎么做 在方案的交互窗口中输入.. TY

#lang scheme
(define sort #f)
(define merge #f)
(let ()
  (define dosort
    (lambda (pred? ls n)
      (if (= n 1)
          (list (car ls))
          (let ((i (quotient n 2)))
            (domerge pred?
                     (dosort pred? ls i)
                     (dosort pred? (list-tail ls i) (- n i)))))))
  (define domerge
    (lambda (pred? l1 l2)
      (cond
        ((null? l1) l2)
        ((null? l2) l1)
        ((pred? (car l2) (car l1))
         (cons (car l2) (domerge pred? l1 (cdr l2))))
        (else (cons (car l1) (domerge pred? (cdr l1) l2))))))
  (set! sort
    (lambda (pred? l)
      (if (null? l) l (dosort pred? l (length l)))))
  (set! merge
    (lambda (pred? l1 l2)
      (domerge pred? l1 l2))))

1 个答案:

答案 0 :(得分:0)

这里有一个分类程序。用一种非常奇怪的定义方式。在交互区域中,只需输入

即可
(sort < '(6 5 2 1))
'(1 2 4 6)
例如,

。您需要提供一个比较列表中2项的功能。另一个例子:

 (sort string>? '("c" "b" "a" "d"))
 ("d" "c" "b" "a")