давно это было, но как сейчас помню. блиц интервью. думать некогда и отвечать нужно сразу.
задача #1. все мы знаем, что километры с литрами складывать нельзя. приведите пример когда это можно.
отвечаю, что:
за каждый километр пройденного пути с логотипом пепси-колы на спине компания платит вам $1. и за каждый литр выпитого пойла тоже платит $1. вы прошли 13 км и выпили 8 литров. сколько вам заплатят денег в скв?
мне говорят что:
так нечестно. у вас там коэффициент равен единице и это частный случай, так что давайте изменим условия задачи.
задача #2: все мы знаем, что метры с дюймами не складывают. приведите пример когда такое сложение не только допустимо, но и оправдано
отвечаю что:
у нас есть измеритель длинны, основанный на вращении барабана с механическим счетчиком и селектором типа отсчета. счетчик имеет 3 десятичных разряда. вы начинаете измерение в метрах и затем переключаете селектор на дюймы. пускай дюймов было 378, а метеров 518. спрашивается: произойдет ли переполнение счетчика. очевидно, что решение задачи сводится к сложению двух величин
мне говорят что:
нам нравится ход ваших рассуждений и здесь действительно происходит непосредственное сложение дюймов с метрами, но в результате получается булевый тип true или false.
задача #3: все мы знаем, что доллары с евро не складывают. приведите пример когда такое сложение не только допустимо, оправдано, но и неизбежно
отвечаю, что:
автомат по выдаче пепси-колы принимает монеты, один стакан — один доллар. но монетоприемник не отличает монету достоинством в одно евро от монеты, достоинством в ддоллар. у нас есть 9 долларов и 6 евро. сколько стаканов пепси-колы мы можем выпить, не производя размена монет?
мне говорят что:
это неправильный монетоприемник и вообще лайф-хак юзать монеты в одно евро там где ожидается один доллар. но так-то да.
а теперь внимание правильный ответ: если у нас есть тип данных "метр" и есть тип данных "дюйм", то ЯВУ может допускать сложение данных разных типов, если ЯВУ автоматически вызывает процедуру преобразования одного типа в другой и у программиста не болит голова.
в принципе, мой ход мысли их удовлетворил. тем более, что блиц. тем более, что мои частные случаи ничуть не более частные чем их "правильный ответ", налагающий жестокие ограничения на выбор ЯВУ и по сути убирающий операции преобразования под кат.
задача #4: все мы знаем, что гусей с децибелами не скалывают... ну вы короче поняли...
ваш ответ?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, мыщъх, Вы писали:
U>тут очень просто решить, если умеешь складывать простые дроби U>если домножить гусей на децибелы, а децибелы на гусей, то их вполне уже можно сложить
ничего не понял. зачем домножать гусей на децибелы?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, мыщъх, Вы писали:
М>>зачем домножать гусей на децибелы?
U>то есть вопрос "как" у тебя не возник ?
"как" это к специалистам. а мне интересно зачем? если гуси вызывают цепную реакцию размножения, то в принципе да. можно сложить пять гусей и три децибела и получить восемь тонн зерна, которое сожрет их популяция через некоторый промежуток времени. то есть физический смысл мне понятен даже без домножения. но зачем это нужно -- никак не пойму.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Хэлкар, Вы писали:
Х>Контора занимается F#?
маловероятно, там основная разработка под никсы.
X> Там можно задавать единицы измерения и преобразования между ними. X> После этого можно не парясь складывать гусей с дюймами.
а как же физический смысл? если комания по логистике берет деньги либо за каждого гуся, либо за каждый дюйм иного груза, то без данного конкретного условия задачи непонятно о каких преобразованиях идет речь. хотя гуси с дюймами это, конечно, крайный вриант.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>задача #4: М>все мы знаем, что гусей с децибелами не скалывают... ну вы короче поняли...
Когда ты складывал метры с дюймами — это были хоть и разные единицы, но величина одинаковая — длинна.
С километрами и литрами ты выкрутился тем, что перевёл их в деньги.
Не, ну можно и гусей с децибелами в деньги перевести — универсальную меру всего в капитализме.
Но врядли ты это имел в виду...
Здравствуйте, alpha21264, Вы писали:
A>Здравствуйте, мыщъх, Вы писали:
A>Не, ну можно и гусей с децибелами в деньги перевести — универсальную меру всего в капитализме.
зачем в деньги? я же предложил цепную реакцию йаиц как функции сколько нужно зерна гусиному поколению пока оно не сдохнет от голода. в децибелах мы будем измерять секусальную функцию гусиного размножения.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
М>а как же физический смысл? если комания по логистике берет деньги либо за каждого гуся, либо за каждый дюйм иного груза, то без данного конкретного условия задачи непонятно о каких преобразованиях идет речь. хотя гуси с дюймами это, конечно, крайный вриант.
С каких это пор язык программирования стал интересоваться физическим смыслом программы? Разработчик задал преобразование и это уже его проблемы.
Здравствуйте, Хэлкар, Вы писали:
Х>С каких это пор язык программирования стал интересоваться физическим смыслом программы? Разработчик задал преобразование и это уже его проблемы.
как же иначе километры в литры преобразовывать? или я просто не понимаю о чем речь?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>а теперь внимание правильный ответ: М>если у нас есть тип данных "метр" и есть тип данных "дюйм", то ЯВУ может допускать сложение данных разных типов, если ЯВУ автоматически вызывает процедуру преобразования одного типа в другой и у программиста не болит голова.
"ЯВУ" — язык высокого уровня? ОК, Каков будет тип результата даже при сложении метров с дюймами? Метры? Дюймы? Попугаи? И как на нём выполняется сложение километров с литрами, можно узнать? Кто и как написал "процедуру преобразования" для этих типов? То есть понятно, что "процедуры" написать как-то можно, но ведь это бессмыслица получится, негодная в реальной жизни? Или нет?
М>в принципе, мой ход мысли их удовлетворил. тем более, что блиц. тем более, что мои частные случаи ничуть не более частные чем их "правильный ответ", налагающий жестокие ограничения на выбор ЯВУ и по сути убирающий операции преобразования под кат.
Их "правильный" ответ кажется какой-то ерундой, ну или я чего-то не понял.
Здравствуйте, xy012111, Вы писали:
X>"ЯВУ" — язык высокого уровня? ОК, Каков будет тип результата даже при сложении метров с дюймами? Метры? Дюймы? Попугаи?
Как определишь, то и будет результатом. Логично было бы конечно всё к стандартным величинам СИ переводить. Но американцы могут конечно и в своих попугаях захотеть результат.
X> И как на нём выполняется сложение километров с литрами, можно узнать? Кто и как написал "процедуру преобразования" для этих типов? То есть понятно, что "процедуры" написать как-то можно, но ведь это бессмыслица получится, негодная в реальной жизни? Или нет?
В принципе литры могут разумно переводится в километры, если это литры бензина и километры пробега автомобиля. И есть функция потребления топлива на километр пробега в зависимости от, например, скорости.
Здравствуйте, xy012111, Вы писали:
X>"ЯВУ" — язык высокого уровня? ОК, Каков будет тип результата даже при сложении метров с дюймами? Метры? Дюймы? Попугаи?
Производный анонимный тип "метры плюс дюймы" в виде монады.
X>И как на нём выполняется сложение километров с литрами, можно узнать?
Никак, метры хранятся отдельно, дюймы отдельно, при необходимости можно привести результат к одной из двух, либо вообще к третьей величине, либо вообще взять по отдельности.
X>Кто и как написал "процедуру преобразования" для этих типов?
Кому потребуется, тот и напишет.
X>То есть понятно, что "процедуры" написать как-то можно, но ведь это бессмыслица получится, негодная в реальной жизни? Или нет?
Как раз в реальной жизни оно востребованно. Мы как-то написали POC для банковского баланса, суммы не приводились в рубли на лету, а хранились рубли отдельно, доллары отдельно, фраки отдельно. Конвертация же в ребли осуществлялась в последний момент. Благодаря такой архитектуре, баланс не нужно было сводить по нескольку часов, вместо этого можно было апдейтить баланс в реальном времени. К сожалению недалекие банкиры нашу идею зарубили по каким-то своим политическим причинам.
Здравствуйте, мыщъх, Вы писали:
М>задача #3: М>все мы знаем, что доллары с евро не складывают. приведите пример когда такое сложение не только допустимо, оправдано, но и неизбежно
Я складываю доллары с евро в кубышку -- рубль-то неизбежно обесценится.
Здравствуйте, Miroff, Вы писали:
X>>"ЯВУ" — язык высокого уровня? ОК, Каков будет тип результата даже при сложении метров с дюймами? Метры? Дюймы? Попугаи? M>Производный анонимный тип "метры плюс дюймы" в виде монады. M>…метры хранятся отдельно, дюймы отдельно, при необходимости можно привести результат к одной из двух, либо вообще к третьей величине, либо вообще взять по отдельности.
Да, спасибо, но так ведь можно по сути описать вообще всё что угодно! Любую операцию над любыми(*) данными.
M>Как раз в реальной жизни оно востребованно.
Вообще принцип — да, конечно. Но и в вашем примере (*) вы хранили две денежные единицы. Это как метры-дюймы, тоже понятно. Я так дни-недели-месяцы абстрактные храню, так же операции арифметические над ними делаю (операцию сложения нескольких дней и нескольких месяцев ни в днях ни в месяцах не выразить точно). А только как появляется дата конкретная, к которой надо этот период времени применить, входит результат и операция обретает смысл.
А вот я спросил конкретно про разноплановые величины и операцию сложения над ними. Хоть убейте, никакого практического применения не могу выдумать. Умножить-поделить одно на другое я понимаю. Приведение и того и другого к одной другой величине и сложение тех величин — отлично понимаю! Поэтому решение топик-стартера видится верным, а вот спрашивающих сильно натянутым.
Здравствуйте, Пофигист, Вы писали:
П>Здравствуйте, xy012111, Вы писали:
X>>"ЯВУ" — язык высокого уровня? ОК, Каков будет тип результата даже при сложении метров с дюймами? Метры? Дюймы? Попугаи? П>Как определишь, то и будет результатом. Логично было бы конечно всё к стандартным величинам СИ переводить. Но американцы могут конечно и в своих попугаях захотеть результат.
Да, семантически-то ясно, интересно было с точки зрения ЯП, на что ответил Miroff.
X>> И как на нём выполняется сложение километров с литрами, можно узнать? Кто и как написал "процедуру преобразования" для этих типов? То есть понятно, что "процедуры" написать как-то можно, но ведь это бессмыслица получится, негодная в реальной жизни? Или нет? П>В принципе литры могут разумно переводится в километры,
Вопрос был не в переводе, а в осмысленности сложения одного с другим. Если одно на другое поделить — это я понимаю.