Может кто-нибудь объяснить эти функции для меня в ракетке. Я полностью потерял. Пожалуйста, помогите мне с некоторыми примерами. Благодаря! Я просто не могу понять эти функции для жизни меня.Cond If And Or in Racket
ответ
Во-первых, если:
(if (positive? 1) 1 -1)
ракетка сначала вычисляет, если 1 является положительным (?, Который является первым expresion (положительный 1)). Если это так, возвращает 1, else, return -1. Это эквивалентно c-подобным языкам:
if (positive?(1))
return 1
else
return -1
Конд - это в основном, если у него есть несколько вариантов. Эквивалент в C-подобных языках бы еще, если
(cond [(first-condition) (what-to-do)]
[(second-condition) (what-to-do)]
[(third-condition) (you-get-the-idea)])
А и Или просто логические операторы, что эквивалентно & & и || в C-подобных языках
(and true true) => true
(and true false) => false
(or true true) => true
(or true false) => true
(or false false) => false
cond является немного более сложным, чем это, хотя это распространенное использование для отправки на случай. – WorBlux
If
является оператором turnary. Он имеет три аргумента, если первый аргумент не имеет значения #f
, он вернет значение второго аргумента, в противном случае значение третьего аргумента.
OR
принимает один или несколько аргументов, оценивает их по одному, слева направо, и возвращает первое значение, если считает, что не #f
и возвращает #f
если аргумент удовлетворяет этому условию.
AND
принимает один или более аргументов оценить их по одному, слева направо, если он находит один, который #f
возвращает #f
, в противном случае она возвращает значение последнего аргумента, что он оценивает.
COND
принимает один или несколько аргументов, каждый из которых имеет один или несколько аргументов (2 - обычное число). Он оценивает каждый аргумент слева направо по одному, оценивая первое субаргажение. Если это не #f
, тогда он оценивает каждый из остальных под-аргументов (если есть) в порядке и возвращает значение последнего аргумента. В противном случае он переходит к следующему аргументу и оценивает его одинаково. else
- это специальный ситакс в этих подпараметрах, который всегда обрабатывается так, как если бы он не был #f
.
И здесь под аргументом понимается любое действительное s-выражение.
NB: Если вы знакомы с не-языковыми языками, это ответ для вас. Я не пытаюсь объяснить их иначе, чем другой код. Однако другие ответы - это просто дополнение.
Ни одна из них не является функциями, а специальными формами.
(if predicate
consequent
alternative)
довольно много, как Algol говоров if
if(predicate)
{
consequent
}
else
{
alternative
}
Обратите внимание, что предикат, как следствие, и альтернативой может быть что угодно, от сложного выражения простого значения.
cond
работает больше похоже на if, elseif ..., Иначе:
(cond (predicate1 consequent1)
(predicaten consequentn)
(else alternative))
and
работает как &&
в Алгол диалектов. Таким образом, false && print("Do it!")
ничего не печатает, так как это короткие замыкания.
(and #f (display "Do it!")) ; ==> #f (and does not display anything since first term was false)
(and 1 2 3) ; ==> 3 (3 is the last true value. In Scheme everything except #f is true.)
or
работает как ||
в Алгол диалектов. таким образом, true || print("Do it!")
не печатает, поскольку первый член был истинным.
(or 'mama (display "Do it")) ; ==> mama (first true value, does not print "do it")
- 1. "cond", "and" and "or" in Scheme
- 2. Использование define in cond Racket, рыцарский тур
- 3. Remove-if-not in Racket
- 4. Can And and Or replace if()
- 5. Python2.6 IF Использование AND OR
- 6. Java If and Or Statement
- 7. If, And, or - Несколько условий
- 8. Использование IF AND OR вместе.?
- 9. Множественные IF, AND, OR заявления
- 10. SharePoint IF AND OR formula
- 11. C Логические операторы if if OR AND
- 12. Заменить x if cond in Mata
- 13. PHP multiple OR in if
- 14. Or/And Filter in HtmlAgilityPack
- 15. Racket Iterations and Recursion
- 16. PHP IF OR AND not working
- 17. Fade 10 divs in and or
- 18. Вложенная схема If/Cond
- 19. PHP AND OR Condition with if else
- 20. Excel IF AND OR condition вместе
- 21. Excel Вложенный IF-функция с AND/OR
- 22. Excel (If, And, OR) нужна помощь
- 23. JavaScript IF с AND/OR .. не работает
- 24. Двойная проверка моего оператора IF AND OR
- 25. Common Lisp: замените IF с AND & OR?
- 26. Javascript if statement with AND и OR
- 27. Excel несколько IF AND OR Условия
- 28. php AND, OR операторы в операторах If
- 29. Заявление IF с OR и AND
- 30. Вложенные IF AND OR функции в excel
Причины закрытия вопросов включают в себя: «Вопросы, касающиеся проблем с кодом, который вы написали, должны описывать конкретную проблему - и включать в себя действительный код для его воспроизведения - в самом вопросе». «Вопросы, требующие кода, должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не работают и ожидаемые результаты». Если вы экспериментировали с этими операторами, какие результаты вы получили, что было неожиданным? Чего ты ожидал? Пожалуйста, будьте конкретны. –
Все, что говорилось, важно знать, что вы знакомы с этими операторами, и я бы посоветовал вам взглянуть на документацию Racket, особенно [2.12 Условные обозначения: if, cond, and and and] (http: // docs .racket-lang.org/reference/if.html), который включает описания и примеры этих операторов. –