私はRacketとDr. Racketを教育目的で使用しています。次の変数の定義は、「X」と「Y」の後リストを受け取った後に「と」と「か」の結果が得られるのはなぜですか?
は:
(define x (list 1 2 3))
(define y (list 4 5 6))
私はこれらの変数を使用した3種類のリストを作成することを決めました。
まず:
(append x y)
>> '(1 2 3 4 5 6)
第二:
(cons x y)
>> '((1 2 3) 4 5 6)
サード:その後
(list x y)
>> ((1 2 3) (4 5 6))
、私はブール演算子を使用することを決めた "と" と "または" と3つのリスト。私が驚いたのはアウトプットでした。なぜこれが起こるのですか?なぜ "か"と "と"と "リストの1つを選ぶ?この決定の背後にある比率は何ですか?
(and (append x y) (cons x y) (list x y))
>> '((1 2 3) (4 5 6))
(or (append x y) (cons x y) (list x y))
>> '(1 2 3 4 5 6)
これは他のほとんどの言語のケースであり、便利なイディオムで使用できます。たとえば、ゼロ除算を防止する数値で除算するには、(and(not x = 0))(/ 1 x))と書くことができます。xがゼロでない場合は1/xを返し、そうでない場合はnilを返します。 – Leo
式を返すのではなく、値を返します。 –