Size: a a a

Сообщество Scheme

2020 June 22

a

anton in Сообщество Scheme
их получается много, и никогда не знаешь, всё ли ты учёл
источник

LL

Lämppi Lütti in Сообщество Scheme
А контекст как поможет?
источник

LL

Lämppi Lütti in Сообщество Scheme
Пока звучит так, что лучше просто переписать
источник

a

anton in Сообщество Scheme
ну может я не так выразился, допустим, мы знаем, что на выходе нужен bool, выдаем #f, а если на выходе нужна пара, выдаем какую-нибудь пару, и т.п.
источник

LL

Lämppi Lütti in Сообщество Scheme
А это уже звучит как статическая типизация
источник

a

anton in Сообщество Scheme
да, но у нас же нет статической типизации...
источник

LL

Lämppi Lütti in Сообщество Scheme
Только в крякете
источник

AK

Andrew Kravchuk in Сообщество Scheme
anton
ну может я не так выразился, допустим, мы знаем, что на выходе нужен bool, выдаем #f, а если на выходе нужна пара, выдаем какую-нибудь пару, и т.п.
Можно извернуться и, используя какой-нибудь из портов CLOS, переопределить car, null? и проч. как дженерики, чтобы для твоего спец. типа nil они возвращали то, что тебе нужно, а для остальных типов - то, что вернула бы библиотечная функция. Но, опять-таки, это не решит проблему с if и другими контекстами, в которых участвуют особые формы
источник

a

anton in Сообщество Scheme
если я хочу переопределить or мне же нужно переопределять его для переменного числа аргументов?
источник

A

Aragaer in Сообщество Scheme
or не функция, а специальный символ для short-circuit
источник

a

anton in Сообщество Scheme
но я же могу перепределить его
источник

ХЛ

Хороший Лисичко... in Сообщество Scheme
А REPL Julia написан на Scheme?
источник

ХЛ

Хороший Лисичко... in Сообщество Scheme
Если да, то прикольно
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Aydar Zarifullin
Все работает, бросает ошибку  
inc: contract violation
 expected: number?
кстати, обожаю эти контракты. Гораздо круче статической типизации для многих задач.
источник

LL

Lämppi Lütti in Сообщество Scheme
Говорят их сложно в оптимизированый код компилять
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
Lämppi Lütti
Говорят их сложно в оптимизированый код компилять
почти невозможно. Функции могут динамично генерироваться и меняться, всё такое
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
хотя можно на шаге компиляции хотя бы часть ошибок ловить
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
допустим, условная sum, которая ждёт два нумбера.

и строчкой ниже (sum "1" 2)

достаточно просто отловить
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
но это по сути никому не нужно, потому что в рантайме тоже словится
источник

b⛅

bouncepaw ⛅ in Сообщество Scheme
а если нужно, чтобы все ошибки с типами ловились в компайлтайме, то лисп не очень подходит
источник