Size: a a a

Сообщество Scheme

2019 August 15

PG

Pïg Grëënëst in Сообщество Scheme
Первое выражение имеет тип num -> num, второе (num -> num) -> (num -> num)
источник

PG

Pïg Grëënëst in Сообщество Scheme
Попробуй понять какой тип у smooth
источник

P

Paysho in Сообщество Scheme
в смысле какой тип?
источник

PG

Pïg Grëënëst in Сообщество Scheme
В прямом
источник

P

Paysho in Сообщество Scheme
я попытался вручную через прогу прогнать, но походу чтобы понять, где происходит расхождение результатов, надо собственно понять разницу между   первым и вторым 😑
источник

P

Paysho in Сообщество Scheme
хорошо а какие типы бывают?
источник

PG

Pïg Grëënëst in Сообщество Scheme
В данном случае только числа и функции
источник

P

Paysho in Сообщество Scheme
но если я испльзую smooth он возвращает мне функцию
источник

P

Paysho in Сообщество Scheme
в смысле процедуру
источник

PG

Pïg Grëënëst in Сообщество Scheme
У процедуры тоже есть тип
источник

P

Paysho in Сообщество Scheme
вот с этого места поподробнее
источник

P

Paysho in Сообщество Scheme
😑
источник

PG

Pïg Grëënëst in Сообщество Scheme
Окей
источник

PG

Pïg Grëënëst in Сообщество Scheme
Тип процедуры это комбинация типов принимаемого и возвращаемого значения
источник

PG

Pïg Grëënëst in Сообщество Scheme
Традиционно обозначается стрелкой
источник

PG

Pïg Grëënëst in Сообщество Scheme
from -> to
источник

PG

Pïg Grëënëst in Сообщество Scheme
Предположим у тебя есть процедура
(define g
 (lambda (x f) (f x)))

, она будет иметь тип (num, num -> num) -> num
источник

PG

Pïg Grëënëst in Сообщество Scheme
Если зафиксировать первый аргумент, x, то получится процедура с типом
(num -> num) -> num
источник

PG

Pïg Grëënëst in Сообщество Scheme
Фиксируем так:
(lambda (f)
 (g some-fixed-value f))
источник

PG

Pïg Grëënëst in Сообщество Scheme
Если зафиксировать второй аргумент, то получится процедура с типом
num -> num
источник