You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[jun3/Haskell] Переместить вопрос из тайпклассов на мидла #311
Предлагаю переместить вопрос: How the problem of orphans and overlapping is solved in other languages or by different overloading implementation techniques? на мидла-1.
Мне кажется вопрос слишком обширной для джуна, ибо предполагает какое-то знакомство с другими языками программирования, которые имеют систему подобную тайп-классом.
Вынос на мидла проблему не решит - оттого, что ты стал мидлом, у тебя в голове не появится знание другого языка :). Ну разве что Scheme, так как он есть в программе мидла, но в Scheme вроде бы нет перегрузки и орфанов.
Мне показалось, этот вопрос необязательный, о личном опыте сотрудника, мол, а с каким решением проблемы оверлаппинга инстансов ты сталкивался в других языках. Ответ на него зависит от того, какие языки знает сотрудник. Если он знает только язык X, то он и ответит только про X, но не ответит про какой-то другой язык Y, который не знает и в котором другое решение проблемы оверлаппинга. Если он ни один язык не знает, кроме хаскеля, или знает только языки, в которых нет перегрузки - ну и что, это тоже ответ. Не неправильный.
Тогда думаю мне кажется его вообще можно было выпилить. Я так подумал спрашивать о том как в других языках это устроено, при этом не давая контекста про какие языки идет речь и не давая ресурсы на это очень странный подход.
Плюс мне кажется ответ на вопрос не сильно приближает к понимаю как устроена работа тайп-классов на самом хаскеле, и вопрос выглядит как из разряда "а вы знали, что ...?"
Да зачем сразу выпиливать? :) Этот вопрос ни к чему не обязывает. Хочешь - отвечай, не хочешь - не надо. Если из вопроса это неясно, можно переформулировать. Он небесполезный, при наличии опыта в других языках он интересен тем, что можно сравнить их с хаскелем. А там есть что сравнивать - тайпклассы это не совсем Java-интерфейсы, есть и общее, и различное.
Мне вообще нравится идея необязательных вопросов. Это позволяет специализироваться на интересном тебе, докинуть в карту развития больше потенциально интересных тем, а не заставлять всех учить гору информации в обязаловку, которая, может быть, не понадобится. Правда, это вроде бы актуально больше для мидла.
Вообще сейчас всё что есть в карте обязывает это сдавать, может не сильно подробно, но все равно при подготовке нужно обратиться к ресурсам и изучить их (или подумать и попробовать примеры самому, если вопрос на подумать). Если оставляем, надо пометить вопрос как необязательный.
Моё предложение:
А вообще на 3м джуне есть ресурс https://dev.to/jvanbruegge/what-the-heck-is-polymorphism-nmh где описаны разные виды полиморфизма в хаскеле и других языках, он как раз предложен для изучения на этот вопрос (спойлер: прямого ответа на вопрос там нет). Там описаны разные виды полиморфизма, но на момент изучения в нашей карте упоминалось только 2 вида: параметрический и ad-hoc.
Я предлагаю вынести этот ресурс на мидла, когда уже проще будет понять остальные виды полиморфизма (Kind, Higher-rank polymorphism и другие), и подвести итог, добавив вопросы на сравнение, что из этого есть не только в хаскеле и как оно сделано. И сюда же поставить вопрос про оверлаппинг и орфаны, который уже будет легко обдумать.
Activity
antonkalinin-ml commentedon Apr 12, 2021
Вынос на мидла проблему не решит - оттого, что ты стал мидлом, у тебя в голове не появится знание другого языка :). Ну разве что Scheme, так как он есть в программе мидла, но в Scheme вроде бы нет перегрузки и орфанов.
Мне показалось, этот вопрос необязательный, о личном опыте сотрудника, мол, а с каким решением проблемы оверлаппинга инстансов ты сталкивался в других языках. Ответ на него зависит от того, какие языки знает сотрудник. Если он знает только язык X, то он и ответит только про X, но не ответит про какой-то другой язык Y, который не знает и в котором другое решение проблемы оверлаппинга. Если он ни один язык не знает, кроме хаскеля, или знает только языки, в которых нет перегрузки - ну и что, это тоже ответ. Не неправильный.
antonkalinin-ml commentedon Apr 12, 2021
Можно его переформулировать, чтобы подчеркнуть необязательность. Мол, знаешь - расскажи, а не знаешь, ничего страшного.
kelizarov commentedon Apr 13, 2021
Тогда думаю мне кажется его вообще можно было выпилить. Я так подумал спрашивать о том как в других языках это устроено, при этом не давая контекста про какие языки идет речь и не давая ресурсы на это очень странный подход.
Плюс мне кажется ответ на вопрос не сильно приближает к понимаю как устроена работа тайп-классов на самом хаскеле, и вопрос выглядит как из разряда "а вы знали, что ...?"
antonkalinin-ml commentedon Apr 20, 2021
Да зачем сразу выпиливать? :) Этот вопрос ни к чему не обязывает. Хочешь - отвечай, не хочешь - не надо. Если из вопроса это неясно, можно переформулировать. Он небесполезный, при наличии опыта в других языках он интересен тем, что можно сравнить их с хаскелем. А там есть что сравнивать - тайпклассы это не совсем Java-интерфейсы, есть и общее, и различное.
Мне вообще нравится идея необязательных вопросов. Это позволяет специализироваться на интересном тебе, докинуть в карту развития больше потенциально интересных тем, а не заставлять всех учить гору информации в обязаловку, которая, может быть, не понадобится. Правда, это вроде бы актуально больше для мидла.
olgaklimenko commentedon Apr 23, 2021
По тому что выше обсуждали:
Вообще сейчас всё что есть в карте обязывает это сдавать, может не сильно подробно, но все равно при подготовке нужно обратиться к ресурсам и изучить их (или подумать и попробовать примеры самому, если вопрос на подумать). Если оставляем, надо пометить вопрос как необязательный.
Моё предложение:
А вообще на 3м джуне есть ресурс https://dev.to/jvanbruegge/what-the-heck-is-polymorphism-nmh где описаны разные виды полиморфизма в хаскеле и других языках, он как раз предложен для изучения на этот вопрос (спойлер: прямого ответа на вопрос там нет). Там описаны разные виды полиморфизма, но на момент изучения в нашей карте упоминалось только 2 вида: параметрический и ad-hoc.
Я предлагаю вынести этот ресурс на мидла, когда уже проще будет понять остальные виды полиморфизма (Kind, Higher-rank polymorphism и другие), и подвести итог, добавив вопросы на сравнение, что из этого есть не только в хаскеле и как оно сделано. И сюда же поставить вопрос про оверлаппинг и орфаны, который уже будет легко обдумать.