Size: a a a

2020 May 27

p

polunin.ai in rust_offtopic
Doge Shibu
В рантайме?
Не, на этапе компиляции
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Не, на этапе компиляции
Ну как тебе самому удобнее компилить
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Не, на этапе компиляции
На этапе компиляции надо, иначе как ты будешь считать сложные bounds-чеки?
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
На этапе компиляции надо, иначе как ты будешь считать сложные bounds-чеки?
В плане сложные bounds-чеки?
источник

EG

Emmanuel Goldstein in rust_offtopic
fn f(x: Even) {}

let a = 10;
if rand() {
   a *= 2;
} else {
   a += 4;
}

f(a);
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Я просто ссылку потерял на неё
источник

EG

Emmanuel Goldstein in rust_offtopic
Если ты в этом месте не хранишь, что a это {20, 14}, то тебе придётся делать control flow analysis второй раз, чтобы понять, чётное оно или нет
источник

EG

Emmanuel Goldstein in rust_offtopic
Даже если это функциональщина чистая
a = if rand then a * 2 else a + 4
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
fn f(x: Even) {}

let a = 10;
if rand() {
   a *= 2;
} else {
   a += 4;
}

f(a);
Ну у меня ML, такой код не прокатит)
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Ну у меня ML, такой код не прокатит)
Ну без разницы, на самом деле
источник

p

polunin.ai in rust_offtopic
Ну переменная понятное дело хранит свой тип
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Ну переменная понятное дело хранит свой тип
Переменная это частный случай значения
источник

EG

Emmanuel Goldstein in rust_offtopic
f $ if rand then a * 2 else a + 4
источник

EG

Emmanuel Goldstein in rust_offtopic
Всё, больше нет переменной
источник

DS

Doge Shibu in rust_offtopic
Имплиситами обычно передают тайпклассы, передавать ими обычные классы - чаще всего сомнительная затея.

Сущности, возможно удобнее было бы написать в одном модуле по типу:
object entities {
  case class Point(...)
  ...
}

А по поводу ФП - почитай либо красную книгу по скале, либо scala with cats
источник

DS

Doge Shibu in rust_offtopic
Потому что пока ты не пользуешься никакими достоинствами скалы
источник

DS

Doge Shibu in rust_offtopic
Такой код можно где угодно написать
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Такой код можно где угодно написать
Ну просто ФП как мог. Я не знаю про достоинства пока особо. Вот скачал Scala with cats. Таки буду читать. Я поэтому и просил тебя посмотреть чтобы узнать как с достоинствами скалы это сделать. Знаю про трейты и их методы т HKT. Знаю что можно Movable [F[_], A] { move() F[A]} и знаю что потом тут может быть Option[Snake] то не знаю как конкрентно в мою игру это впихнуть и главное Зачем?
источник

VS

Victor Sapiens in rust_offtopic
Я про парку domain. То что за ее пределами там Java и вообще плевать что там происходит
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Ну просто ФП как мог. Я не знаю про достоинства пока особо. Вот скачал Scala with cats. Таки буду читать. Я поэтому и просил тебя посмотреть чтобы узнать как с достоинствами скалы это сделать. Знаю про трейты и их методы т HKT. Знаю что можно Movable [F[_], A] { move() F[A]} и знаю что потом тут может быть Option[Snake] то не знаю как конкрентно в мою игру это впихнуть и главное Зачем?
Ну тут задача плохо под адвансед фичи скалы подходит. Можно разве что попробовать с линзами поиграться, где надо с коллекциями иммутабельных обьектов работать, но это слишком для новичка
источник