Size: a a a

2020 December 23

m

magras in pro.algorithms
Defragmented Panda
в моих примерах нужно заменить 1 слово чтобы заменить тот обьект что считаем (машина или трактор)

в твоем примере все еще нужно будет менять около 5 слов. и эти слова разбросаны по всей функции, что сильно повышает шанс ошибок типа тут заменил, а тут нет

@drMagras
Нет. Функция foo принимает два аргумента car и human. Еще в хаскеле есть похожая конструкция let y=x+1 in x*y, которая эквивалентна x*(x+1).
источник

DP

Defragmented Panda in pro.algorithms
окей, это какая-то лямбда калькулюс видимо. я не знаком с записью

можешь показать как будет записано это

car.speed=4
car.capacity=6
human.space=1
human.weight=80
with(car) with (human){
speed*speed*weight*capacity/space/2
}

и потом заменить 1 слово в функции чтобы она приняла tractor вместо car? считая что устпойство обьекта tractor то же. просто значенмя другие
источник

m

magras in pro.algorithms
В общем на мой взгляд лучше именовать и выражения и функции. На мой взгляд читать приведенное выше выражение с with чертовски неудобно.
источник

m

magras in pro.algorithms
Defragmented Panda
окей, это какая-то лямбда калькулюс видимо. я не знаком с записью

можешь показать как будет записано это

car.speed=4
car.capacity=6
human.space=1
human.weight=80
with(car) with (human){
speed*speed*weight*capacity/space/2
}

и потом заменить 1 слово в функции чтобы она приняла tractor вместо car? считая что устпойство обьекта tractor то же. просто значенмя другие
Так выше было определение функции foo. Ее можно вызвать с car или tractor:
result = foo car human
result = foo tractor human
источник

DP

Defragmented Panda in pro.algorithms
magras
Так выше было определение функции foo. Ее можно вызвать с car или tractor:
result = foo car human
result = foo tractor human
окей, что мне погуглить чтобы почитать как оно работает? (чтобы я понял могу ли я это закодить)
источник

m

magras in pro.algorithms
Defragmented Panda
окей, это какая-то лямбда калькулюс видимо. я не знаком с записью

можешь показать как будет записано это

car.speed=4
car.capacity=6
human.space=1
human.weight=80
with(car) with (human){
speed*speed*weight*capacity/space/2
}

и потом заменить 1 слово в функции чтобы она приняла tractor вместо car? считая что устпойство обьекта tractor то же. просто значенмя другие
По хорошему в моем определении foo стоило бы переименовать car в vehicle, а human в passenger. Это к слову о хороших именах.
источник

DP

Defragmented Panda in pro.algorithms
magras
По хорошему в моем определении foo стоило бы переименовать car в vehicle, а human в passenger. Это к слову о хороших именах.
да. это хорошая идея

(но мне все еще нравится идея пропустить это создание отдельной сущности, чтобы не было новых слов)
источник

DP

Defragmented Panda in pro.algorithms
 какой вариант вам ближе?

1) через динамичную область видимости и обьекты
var car={}
car.speed=4
car.capacity=6
var human={}
human.space=1
human.weight=80
with(car) with (human){
var answer=speed*speed*weight*capacity/space/2
}


2) через статическую область видимости и пересоздание
var car = context(`
speed=4
capacity=6
`)
var human=context(`
space=1
weight=80
`)
context=(car,human,`
var answer=speed*speed*weight*capacity/space/2
`)

3) через промежуточные сущности
var car={}
car.speed=4
car.capacity=8
var human={}
human.weight=80
human.space=1
var vehicle=car
var pasdanger=human
var answer=vehicle.speed*vehicle.speed*passanger.weight*vehicle.capacity/passanger.space
источник

DP

Defragmented Panda in pro.algorithms
Defragmented Panda
 какой вариант вам ближе?

1) через динамичную область видимости и обьекты
var car={}
car.speed=4
car.capacity=6
var human={}
human.space=1
human.weight=80
with(car) with (human){
var answer=speed*speed*weight*capacity/space/2
}


2) через статическую область видимости и пересоздание
var car = context(`
speed=4
capacity=6
`)
var human=context(`
space=1
weight=80
`)
context=(car,human,`
var answer=speed*speed*weight*capacity/space/2
`)

3) через промежуточные сущности
var car={}
car.speed=4
car.capacity=8
var human={}
human.weight=80
human.space=1
var vehicle=car
var pasdanger=human
var answer=vehicle.speed*vehicle.speed*passanger.weight*vehicle.capacity/passanger.space
Какой синтаксис лучше для быстрого обмена вычислениями типа школьных?
Анонимный опрос
0%
динамическая область видимости с обьектами. with(human) {weight}
24%
статическая область видимости с пересозданием context(human, 'weight')
12%
промежуточные обьекты passanger=human; passanger.weight
65%
мяу
Проголосовало: 17
источник

CD

Constantine Drozdov in pro.algorithms
Defragmented Panda
Какой синтаксис лучше для быстрого обмена вычислениями типа школьных?
Анонимный опрос
0%
динамическая область видимости с обьектами. with(human) {weight}
24%
статическая область видимости с пересозданием context(human, 'weight')
12%
промежуточные обьекты passanger=human; passanger.weight
65%
мяу
Проголосовало: 17
а где сишный вариант? почему не
var car = { .speed = 4, .capacity = 8 }
var human = { .weight = 80, .space = 1 }
(безумная формула отдельно)
источник

DP

Defragmented Panda in pro.algorithms
Constantine Drozdov
а где сишный вариант? почему не
var car = { .speed = 4, .capacity = 8 }
var human = { .weight = 80, .space = 1 }
(безумная формула отдельно)
покажи "безумная формула отдельно" чтобы я понял как ты предлагаешь это решить

я не помню как в си работает обращение к параметрам структур\ классов
источник

CD

Constantine Drozdov in pro.algorithms
Defragmented Panda
покажи "безумная формула отдельно" чтобы я понял как ты предлагаешь это решить

я не помню как в си работает обращение к параметрам структур\ классов
а я не понимаю, какие задачи передо мной ставятся как перед проектировщиком
источник

DP

Defragmented Panda in pro.algorithms
Constantine Drozdov
а я не понимаю, какие задачи передо мной ставятся как перед проектировщиком
возможность посчитать кинетическую энергию пассажиров с удобной заменой типа пассажира или транспорта в коде

если тип пассажира может поменяться (человек, лобстер, жираф, все имеют weight)

и если тип машины может поменяться (легковушка, трактор, поезд. все имеют capacity, количество мест)
источник

CD

Constantine Drozdov in pro.algorithms
Defragmented Panda
возможность посчитать кинетическую энергию пассажиров с удобной заменой типа пассажира или транспорта в коде

если тип пассажира может поменяться (человек, лобстер, жираф, все имеют weight)

и если тип машины может поменяться (легковушка, трактор, поезд. все имеют capacity, количество мест)
я знаю более одного подхода, и выбор между ними определяется фундаментальным характером использования
источник

CD

Constantine Drozdov in pro.algorithms
например, C++ подход и Haskell/Rust подход
источник

CD

Constantine Drozdov in pro.algorithms
машина это то, что названо машиной, или машина это то, что крякает как машина
источник

DP

Defragmented Panda in pro.algorithms
Constantine Drozdov
я знаю более одного подхода, и выбор между ними определяется фундаментальным характером использования
1) замена типа пассажира или типа транспорта изменением 1 слова в коде
2) минимум символов и вариантов синтаксиса в видимой части кода
источник

CD

Constantine Drozdov in pro.algorithms
Defragmented Panda
1) замена типа пассажира или типа транспорта изменением 1 слова в коде
2) минимум символов и вариантов синтаксиса в видимой части кода
это все еще не отвечает на мой вопрос
источник

DP

Defragmented Panda in pro.algorithms
Constantine Drozdov
машина это то, что названо машиной, или машина это то, что крякает как машина
машина это один из видов транспорта
источник

CD

Constantine Drozdov in pro.algorithms
Defragmented Panda
машина это один из видов транспорта
это все еще не отвечает на мой вопрос
источник