2016-11-07 4 views
0

私は前にschemeを使ったことがありません。Schemeの列の値を比較する方法

結果セットのすべての値が同じであることを確認するには、テーブルの列を反復処理する必要があります。すべての値が等しい場合は、チェックされていると書いておきます。

私は、TirePressureという列を持つCarという名前のdbテーブルを持っているとします。 selectステートメントは4つのTirePressure値を返します。値がすべて同じ場合は、結果を書き込む必要があります。

(if (zero? (gSelectOne stmt (string-append "SELECT TirePressure FROM Car WHERE VIN = "ABCDEF"))) 
    (if (= 48 (gGetInt (stmt "TirePressure"))) 
     (begin (gSetIntValue (mCtl "TiresChecked") 1)) 
    ) 

db違反を無視してください。これは単なる例です。

何か助けていただければ幸いです。

答えて

0

ifは3式、predicateconsequentalternativeを取る(他の言語でifwhileのような非機能のために派手なlispの話、)特殊な形式です。このような:述語が(従って真)#fconsequentが評価されない、コードの結果であるので、もし

(if predicate 
    consequent 
    alternative) 

すべての式は、値を返します。そうでなければ、代替案の評価が結果になる。

、あなたは変数aかどうかを確認したい想像b、およびcは、あなたがこのように行うことができますゼロです:だから私たちはすることができますprerssuresのリストになり表現を持っている想像

(= 0 a b c) ; ==> #t/#f 

変数resは:

(define res '(0 0 0)) 
(if (apply = 0 res) 
    "all zero" 
    "not good") 
; ==> "all zero" 
関連する問題