Возможно не до конца понял вопрос, но что касается errors.New(). Он возвращает указатель на структуру с закрытым полем типа строка. https://golang.org/src/errors/errors.go
Соответственно мы сравниваем указатели, а не строки, со всеми вытекающими от сюда. play
func main() {
if io.EOF == errors.New("EOF"){
fmt.Printf("case 1")
}
if errors.New("EOF") == errors.New("EOF"){
fmt.Printf("case 2")
}
}
Например, ошибки из разных пакетов не будет равны, да же если у них одно содержание.
Вы правы, carrying и partial application — это разные вещи.
Не хотел в небольшой статье для начинающих вводить еще один термин и описывать разницу между carrying и partial application. Но вероятно это была ошибка. Внес корректировки.
Спасибо.
Для не чисто функциональных языков, это абсолютно не обязательная штука. Если нет точного понимания, что это наиболее эффективный способ, то всегда можно найти другое решение(особенно если с вашим кодом будут работать люди с разной компетенцией).
Достаточно понимать общий смысл, что бы возникало немного меньше вопросов читая чужой код. 48 примеров
спасибо!
Не стал я сильно усложнять.
Union vs sum types - тут можно посмотреть разницу на примере реализаций этих типов в Julia и Rust.
ага, спасибо! исправил.
Наибольшая сложность это создать релевантную нагрузку и снять профиль. Дальше достаточно добавить профиль с именем default.pgo в корень проекта.
Можно снимать периодически с прода и добавлять в репозиторий, но в этом случае профиль всегда будет от предыдущей сборки.
Если есть нагрузочное тестирование или перф регрессия тогда можно брать от них.
Возможно не до конца понял вопрос, но что касается errors.New(). Он возвращает указатель на структуру с закрытым полем типа строка.
https://golang.org/src/errors/errors.go
Соответственно мы сравниваем указатели, а не строки, со всеми вытекающими от сюда.
play
Например, ошибки из разных пакетов не будет равны, да же если у них одно содержание.
Решение через генераторы:
Не хотел в небольшой статье для начинающих вводить еще один термин и описывать разницу между carrying и partial application. Но вероятно это была ошибка. Внес корректировки.
Спасибо.
Достаточно понимать общий смысл, что бы возникало немного меньше вопросов читая чужой код.
48 примеров
Названия функций исправил. Всем спасибо!