Вопрос к & ldquo; Как разрабатывать программы & rdquo ;, Данные фиксированного размера, 1.7, Упражнение 9

ну, я нашел, как работает OpenSSL. SSL_write снова вернется, даже если действительно отправлено только 10 байтов, а в байтах is't будет кэшировано 106 байтов. И OpenSSL будет записывать текущий размер ввода (100) и оставаться размером (106). Во второй раз, когда вызывается SSL_write, он сначала отправляет данные остатка (106), а затем удаляет первые 100 байтов текущих входных данных.

1
задан Srgaala 20 January 2019 в 09:27
поделиться

2 ответа

Спасибо за ваш ответ. Я думаю, что понимаю это больше.

Пока я это сделал.


Для строки

(define in "kitty")
(if (string? in) (string-length in) in)

Результатом здесь было 5


Для изображения (там, где я писал рисунок, была картинка, а не текст.) ( определить на картинке.)

(if (image? in) (* (image-width in) (image-height in)) in)    

Результат здесь был 8775

<час>

Для числа

(define in 23)
(if (<= in 0) in (- in 1))    

Результат был 22.


Для логического значения (однако этот не работает, он говорит: "=: ожидает число в качестве 1-го аргумента, учитывая #true")

(define in #true)
(if (= in #true) 10 20)    

(я не совсем уверен теперь, как мне нужно изменить эту часть, чтобы она работала.)


Я думаю, что кроме логической части, пока все выглядит хорошо. Я попытался выяснить, как сделать логическое значение, но я действительно не уверен, как его переписать.

Для Cond я действительно еще не пробовал там много. Я думаю, что мне нужно перечитать главы раньше.

0
ответ дан Srgaala 20 January 2019 в 09:27
поделиться

Он сказал, что если само значение in оценивается как #true, то выражение должно оцениваться до 10. Это отличается от «если условное (в if) оценивается как #true, то выражение должно оцениваться до 10», что, как я понимаю, является вашей текущей (но неверной) интерпретацией.

Например:

(define in #true)
<your expression>

<your expression> следует оценить до 10

(define in #false)
<your expression>

<your expression> следует оценить до 20

(define in 23)
<your expression>
[1133 ] <your expression> следует оценить как 22 (потому что in - это число, которое не является ни 0, ни отрицательным).

(define in "hello")
<your expression>

<your expression> следует оценить до 5 (длина "hello").

И так далее.

Также обратите внимание, что когда in оценивает неположительное число, в упражнении не описывается, что именно должно <your expression> оценивать, но оно говорит, что оно должно быть положительным. Ваш текущий код («оставьте число как есть») неверен, потому что результат не будет положительным.

Обязательно прочтите раздел 1.7 подробно. Вам нужно будет использовать boolean?, number?, string?, image?, string-length и другие. Вы также можете найти cond (введенный в «Пролог: как программировать») более удобным в использовании, чем набор if с.

0
ответ дан Sorawee Porncharoenwase 20 January 2019 в 09:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: