スキームを使用してポイント距離公式をプログラムしようとしています。私はエラーが出ることを除いて、私はそれを得ることに非常に近いです。ポイント距離公式のプログラミング時にスキームエラーが発生する - 手順を適用しないようにしよう
正確なエラーがある:ここ
Traceback (most recent call last):
File "In [54]", line 5, col 11, in 'application'
File "In [54]", line 5, col 11
RunTimeError: attempt to apply non-procedure '4'
が私のコードである:参考
; code for the distance procedure
(define (distance p1 p2) (sqrt (+ (* (- (car(p2)) (car(p1))) (- (car(p2)) (car(p1)))) (* (- (car(cdr(p2))) (car(cdr(p1)))) (- (car(cdr(p2))) (car(cdr(p1))))))))
(distance (4 5) (3 2))
、点距離式は:((×√
- X1)^ 2 +(y2 - y1)^ 2)
フォロースキームの構文。 schemeの関数の一般的な構造は '(function arg1 arg2 ...)'なので、 '(car(p1))'の代わりに '(car p1)'のようなものを使うことができます。 – assefamaru
'(4 5) 'は引数 '5'を手続き '4'に渡そうとします。 Scheme構文の基本を確認します。 – molbdnilo