Scheme 帕斯卡';带扭曲的三角形

Scheme 帕斯卡';带扭曲的三角形,scheme,Scheme,假设我们想在Scheme中生成Pascal三角形,但有一个扭曲。对于函数(pascal left right depth),其中left是三角形左侧的数字,right是右侧的数字。例如,调用(pascal 1 1 5)将返回 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 1 2 1 3 2 1 4 5 2 1 5 9 7 2 1 6 14 16 9 2 然后会返

假设我们想在Scheme中生成Pascal三角形,但有一个扭曲。对于函数(pascal left right depth),其中left是三角形左侧的数字,right是右侧的数字。例如,调用(pascal 1 1 5)将返回

      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
 1 5 10 10 5 1 
      1
     1 2
    1 3 2
   1 4 5 2
  1 5 9 7 2
 1 6 14 16 9 2
然后会返回对(pascal 1 2 5)的调用

      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
 1 5 10 10 5 1 
      1
     1 2
    1 3 2
   1 4 5 2
  1 5 9 7 2
 1 6 14 16 9 2
如何打印三角形,使其间距与示例相同

到目前为止,我的代码如下所示,但这只是返回哪个数字应该位于标准三角形中的哪个位置

(define (pascal x y)
    (cond ((or (<= x 0) (<= y 0) (< x y)) 0)
        ((or (= 1 y) (= x y)) 1)
        (else (+ (pascal (- x 1) y) (pascal (- x 1) (- y 1))))))
(定义(pascal x y)

(条件)(在每行的开头添加一个递减的空格。根据最后一行的长度和要打印的当前行的长度来确定数字。

请发布您迄今为止编写的代码,指出代码中您在@scarLópez方面遇到问题的特定部分。您如何打印可变数量的空格s、 例如,假设我想打印8个空格,后跟一个空格。(println(*“8)1)不适用于打印。如何打印可变数量的空格。例如,假设我想打印8个空格,后跟一个空格。(println(*“8)1)不适用于打印。@user3277752使用
(生成字符串8”)
而不是
(*“8”)
这不起作用。