Size: a a a

2021 February 19

EG

Emmanuel Goldstein in rust_offtopic
Ну почему не добавлю
источник

EG

Emmanuel Goldstein in rust_offtopic
irb(main):005:0> 1.class
=> Integer
irb(main):006:1* class Integer
irb(main):007:2*   def foobar
irb(main):008:2*     "Foobared!"
irb(main):009:1*   end
irb(main):010:0> end
=> :foobar
irb(main):011:0> 1.foobar
=> "Foobared!"
источник

KR

Kai Ren in rust_offtopic
Что-то по эльфийски написано, не разберу...
источник

А⚙

Антон ⚙️ in rust_offtopic
Ilya Lakhin
Если мы хотим энфорсить семантику(сразу отвечаю @emmanuelGoldstein ), мы можем это сделать специфицируя интерфейс более точно, добавив в него что-то помимо to_string.
Не можем, потому типов недостаточно, чтобы форсить семантику
источник

EG

Emmanuel Goldstein in rust_offtopic
Kai Ren
Что-то по эльфийски написано, не разберу...
В Ruby ты можешь что угодно дописать какому угодно классу в любом месте
источник

EG

Emmanuel Goldstein in rust_offtopic
Включая базовые типы
источник

А⚙

Антон ⚙️ in rust_offtopic
Emmanuel Goldstein
У меня идея — давайте добавлять в интерфейс специальную функцию function this_implements_interface_foobar(), которая будет просто сигнализировать, что мы не перепутали интерфейсы
Вуаля — ты переизобрёл номинативную типизацию!
источник

EG

Emmanuel Goldstein in rust_offtopic
Антон ⚙️
Вуаля — ты переизобрёл номинативную типизацию!
Да, я это и сказал двумя сообщениями ниже
источник

А⚙

Антон ⚙️ in rust_offtopic
Ilya Lakhin
А почему не читать тело кода? Из него, между прочим, вполне можно интерфейс параметров вывести
Даже в Haskell так делать не принято, а там полный вывод типов
источник

EG

Emmanuel Goldstein in rust_offtopic
Emmanuel Goldstein
В Ruby ты можешь что угодно дописать какому угодно классу в любом месте
В JS, кстати, тоже, как я понимаю.
источник

KR

Kai Ren in rust_offtopic
Emmanuel Goldstein
В Ruby ты можешь что угодно дописать какому угодно классу в любом месте
Ну в рубях да. Я почему-то автоматом думал про ТС и Го
источник

IL

Ilya Lakhin in rust_offtopic
Антон ⚙️
Даже в Haskell так делать не принято, а там полный вывод типов
Поэтому я и считаю, что Хаскель и современные системы статической типизации неудобны
источник

KR

Kai Ren in rust_offtopic
Ilya Lakhin
Поэтому я и считаю, что Хаскель и современные системы статической типизации неудобны
Тебе тогда в плюсовые шаблоны. Вот там просто волшебное удобство. Царь апрувед.
источник

SP

Stanislav Popov in rust_offtopic
динамика это просто такой майндсет чтоли. как гендер
источник

SP

Stanislav Popov in rust_offtopic
я иначе не могу обьяснить
источник

EG

Emmanuel Goldstein in rust_offtopic
Kai Ren
Ну в рубях да. Я почему-то автоматом думал про ТС и Го
Welcome to Node.js v15.8.0.
Type ".help" for more information.
> class Foobar {}
undefined
> Foobar.prototype.foobar = function() { console.log("Hi there!") }
[Function (anonymous)]
> const f = new Foobar();
undefined
> f.foobar()
Hi there!
undefined
>

Вот JS
источник

KR

Kai Ren in rust_offtopic
Ilya Lakhin
Поэтому я и считаю, что Хаскель и современные системы статической типизации неудобны
Ну то есть это баттл "семантика в типах" вс "семантика в коде"
источник

SP

Stanislav Popov in rust_offtopic
просто есть такие люди которые оу, хочу просто брать и засовывать это везде
источник

IL

Ilya Lakhin in rust_offtopic
Это всё вполне можно было бы выводить, и программы получались бы гораздо локаничнее, и в то же время проверялись бы компилятором. Но до этого как-то не додумались/не взялись/хотят всё прописывать явно. Что само по себе странно, учитывая, например, что в Хаскеле не стесняются делать функции анонимными.

Ну если вы функции анонимными делаете, то почему типы не разрешаете?
источник

KR

Kai Ren in rust_offtopic
Stanislav Popov
динамика это просто такой майндсет чтоли. как гендер
Ага, а мы значит тут все статикомрази?
источник