0

私はSchemeを初めて使用します。誰か*が次のコードで何をしているのか説明してもらえますか?

(define pat2 '(or
           (list a g t a t a t g g a t a)
           (list g t a g g c c g t)
           (list c c c g a t a a a a a a g t g t c g t)
           (list c g a t c c c (junk 1) c g a t c t a)))
(define pat3 (list 'list pat2 '(junk 2)))
(define pat4 (list '* pat3))  ; I'm confused about the * here.

内容はpat4こんな感じになると思います

(*
  (list
  (or (list a g t a t a t g g a t a)
  (list g t a g g c c g t)
  (list c c c g a t a a a a a a g t g t c g t)
  (list c g a t c c c (junk 1) c g a t c t a))
  (junk 2)))

しかし、私はまだ何であるかについて混乱してい*ます...それは通常乗算を意味しますが、それはおそらくここではそれのためではありませんでしたか?

ありがとう!

4

1 に答える 1

1

これは単に記号*です(これが引用符で囲まれている理由です。引用符は記号が評価されないようにします)。

コードを実行すると、pat4が単にpat3であり、前に*記号が付いていることがわかります。

> pat2
'(or (list a g t a t a t g g a t a) (list g t a g g c c g t) (list c c c g a t a a a a a a g t g t c g t) (list c g a t c c c (junk 1) c g a t c t a))
> pat3
'(list (or (list a g t a t a t g g a t a) (list g t a g g c c g t) (list c c c g a t a a a a a a g t g t c g t) (list c g a t c c c (junk 1) c g a t c t a)) (junk 2))
> pat4
'(* (list (or (list a g t a t a t g g a t a) (list g t a g g c c g t) (list c c c g a t a a a a a a g t g t c g t) (list c g a t c c c (junk 1) c g a t c t a)) (junk 2)))
于 2013-02-27T06:06:41.790 に答える