0

言語 BSL - DrRacket (ラケットバリアント)

問題: 以下の関数が正確に何をするのかを理解する必要があります。具体的には部分文字列ビットですが、文字列に「?」が含まれているかどうかを判断する方法がわかりません。最後に「?」を追加するかどうかを選択します。消費された文字列に。

(define (ensure-question str)
  (if (string=? (substring str (- (string-length str) 1)) "?")
      str
      (string-append str "?")))
4

1 に答える 1

2

(substring s position)s関数は、特定の位置から文字列の部分文字列を返します。たとえば 、最初の文字から添字を取得しているため、 が(substring "Apple" 1)返されます。"pple"

(substring "Apple" ( - (string-length "Apple") 1))

戻り"e"ます。

最後の文字だけを含む添え字を取り、function を使用し(- (string-length str) 1))て等しいかどうかをチェックしています。"?"string=?

于 2015-08-25T20:44:00.310 に答える