Re[32]: [haskell] considered mainstream
От: VoidEx  
Дата: 11.03.09 16:26
Оценка:
Здравствуйте, pgregory, Вы писали:

P>Вот вы и попались!


P>Это -- чушь. Доказательство (GHCi, version 6.10.1):


P>
P>Prelude> let f1 x = do { a <- x; return a }
P>Prelude> :t f1
P>f1 :: (Monad m) => m b -> m b
P>

P>
P>Prelude> let f2 x = x
P>Prelude> :t f2
P>f2 :: t -> t
P>


Сами логическую ошибку в док-ве найдёте? Точнее так: сами поймёте, почему вы не опровергли утверждение, а доказали?
Re[32]: [haskell] considered mainstream
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 11.03.09 16:44
Оценка:
Здравствуйте, pgregory, Вы писали:

P>Это -- чушь. Доказательство (GHCi, version 6.10.1):


А вот тоже смешно:

Prelude> let f = 42
Prelude> :t f
f :: Integer
Prelude> :t 42
42 :: (Num t) => t


Я доказал, что 42 — это не 42!
Re[32]: [haskell] considered mainstream
От: Аноним  
Дата: 11.03.09 17:30
Оценка:
Здравствуйте, pgregory, Вы писали:

K>>Если не знать что такое коммутативное кольцо с единицей — можно написать, например, b+0, хотя это то же свамое, что и b, а если не знать что такое монады можно написать

P>
P>a <- foo
P>return a
P>

K>>хотя это то же самое, что и просто foo.

P>Вот вы и попались!


P>Это -- чушь. Доказательство (GHCi, version 6.10.1):


Ага, интерпретатором вы пользоваться умеете, осталось ещё мозг подключить.
Какое отношение приведённый код имеет к аналогии со знанием свойств кольца и знанием monad laws?

P>Комментарии нужны?


P>Да, я понимаю, что вы хотели сказать. Но, как видите, у вас не получилось
Re[33]: [haskell] considered mainstream
От: pgregory Россия  
Дата: 11.03.09 17:47
Оценка:
Здравствуйте, lomeo, Вы писали:

L>А вот тоже смешно:


L>
L>Prelude> let f = 42
L>Prelude> :t f
L>f :: Integer
L>Prelude> :t 42
L>42 :: (Num t) => t
L>


L>Я доказал, что 42 — это не 42!


:-)

Ок, вижу, комментарии все же нужны.

В моем примере подразумевалась необходимость связки типа -XNoMonomorphismRestriction + import Control.Monad + liftM для превращения одного в другое. Если нужда в этой связке -- лишь плод моего воображения, я признаю, что неправ. Иначе вы признаете, что я прав.

Идет?
--
In code we trust.
Re[33]: [haskell] considered mainstream
От: pgregory Россия  
Дата: 11.03.09 17:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ага, интерпретатором вы пользоваться умеете, осталось ещё мозг подключить.


Дружок, если уж ты достаточно смел, чтобы грубить, может, будешь настолько смелым, чтобы делать это не анонимно?
--
In code we trust.
Re[34]: [haskell] considered mainstream
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 11.03.09 19:15
Оценка: +1
Здравствуйте, pgregory, Вы писали:

P>В моем примере подразумевалась необходимость связки типа -XNoMonomorphismRestriction + import Control.Monad + liftM для превращения одного в другое. Если нужда в этой связке -- лишь плод моего воображения, я признаю, что неправ. Иначе вы признаете, что я прав.


P>Идет?


Было сказано: do { a <- foo; return foo} то же самое, что и foo.
Напиши такое монадическое значение foo, для которого нельзя заменить do {...} на foo.

Тогда я признаю, что ты прав.

Очевидно, что для монады это сделать невозможно. Иначе это будет не монада. Игры же с типами совершенно несерьёзны и показывают, что ты не понимаешь, о чём говорил твой оппонент. В частности, в твоём определении f2 надо писать let f2 (x :: Monad m => m a) = x.

Да, и при чём там liftM я не понял.
Re[32]: [haskell] considered mainstream
От: Klapaucius  
Дата: 11.03.09 19:30
Оценка: :)
Здравствуйте, pgregory, Вы писали:

P>Да, я понимаю, что вы хотели сказать. Но, как видите, у вас не получилось


От меня все пули ушли. Так что проблемы на принимающей стороне.
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[34]: [haskell] considered mainstream
От: Mr.Cat  
Дата: 11.03.09 20:05
Оценка:
Здравствуйте, pgregory, Вы писали:
P>Если нужда в этой связке -- лишь плод моего воображения, я признаю, что неправ. Иначе вы признаете, что я прав.

Я предлагаю другой компромисс. Давайте мы зафиксируем факт толстого троллинга и оставим эту тему?
Re[33]: [haskell] considered mainstream
От: pgregory Россия  
Дата: 11.03.09 22:16
Оценка: 20 (2)
Здравствуйте, Klapaucius, Вы писали:

P>>Да, я понимаю, что вы хотели сказать. Но, как видите, у вас не получилось


K>От меня все пули ушли. Так что проблемы на принимающей стороне.


Здравствуйте, lomeo, Вы писали:

P>>В моем примере подразумевалась необходимость связки типа -XNoMonomorphismRestriction + import Control.Monad + liftM для превращения одного в другое. Если нужда в этой связке -- лишь плод моего воображения, я признаю, что неправ. Иначе вы признаете, что я прав.


L>... Очевидно, что для монады это сделать невозможно. Иначе это будет не монада. Игры же с типами совершенно несерьёзны и показывают, что ты не понимаешь, о чём говорил твой оппонент. В частности, в твоём определении f2 надо писать let f2 (x :: Monad m => m a) = x.


Согласен и с тем, и с тем. Нет проблем — признаю, что был не прав. Ответил, погорячившись.

Займусь-ка я теперь хаскелем посерьезней (возрадуйся, thesz! )

Спасибо всем за дискуссию!
--
In code we trust.
Re[51]: [haskell] considered mainstream
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 12.03.09 11:50
Оценка:
Здравствуйте, z00n, Вы писали:

Z>В ObjectiveC 2.0 уже 3 года как консервативный GC. Tim Sweeney применяет его в UnrealEngine2/3 уже несколько лет на приставках без виртуальной памяти.


Утверждаю, что Вы ошибаетесь.

http://www.unrealtechnology.com/features.php?ref=technology-overview
http://en.wikipedia.org/wiki/UnrealEngine

Давайте ссылки.
Re[52]: [haskell] considered mainstream
От: pgregory Россия  
Дата: 12.03.09 11:57
Оценка:
Здравствуйте, Alxndr, Вы писали:

A>Давайте ссылки.


http://lambda-the-ultimate.org/node/1277
--
In code we trust.
Re[53]: [haskell] considered mainstream
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 12.03.09 12:21
Оценка:
Здравствуйте, pgregory, Вы писали:

A>>Давайте ссылки.


P>http://lambda-the-ultimate.org/node/1277


Ни в слайдах, ни в комментариях нет упоминания Objective-C.
Re[52]: Unreal Engine 3 GC
От: z00n  
Дата: 12.03.09 12:45
Оценка:
Здравствуйте, Alxndr, Вы писали:

A>Давайте ссылки.

pgregory дал правильную ссылку — долистайте до http://lambda-the-ultimate.org/node/1277#comment-14252

Вот еще забавная ссылка: Some Stripped Technical Details From the Unreal Engine 3 Lawsuit

Хотя, я возможно погорячился по поводу UE2.
Re[54]: [haskell] considered mainstream
От: pgregory Россия  
Дата: 12.03.09 12:47
Оценка:
Здравствуйте, Alxndr, Вы писали:

Z>В ObjectiveC 2.0 уже 3 года как консервативный GC. Tim Sweeney применяет его в UnrealEngine2/3 уже несколько лет на приставках без виртуальной памяти.


A>Ни в слайдах, ни в комментариях нет упоминания Objective-C.


Его -- значит консервативный GC, я так понимаю.
--
In code we trust.
Re[54]: [haskell] considered mainstream
От: z00n  
Дата: 12.03.09 12:48
Оценка:
Здравствуйте, Alxndr, Вы писали:

A>Ни в слайдах, ни в комментариях нет упоминания Objective-C.

Местоимение 'его' относилось к GC.
Re[55]: [haskell] considered mainstream
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 12.03.09 12:52
Оценка:
Здравствуйте, z00n, Вы писали:

Z>Здравствуйте, Alxndr, Вы писали:


A>>Ни в слайдах, ни в комментариях нет упоминания Objective-C.

Z>Местоимение 'его' относилось к GC.

Тогда вопрос снимается
Re[15]: [haskell] considered mainstream
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 12.03.09 19:03
Оценка:
Здравствуйте, thesz, Вы писали:

T>>>Ты не поверишь, но не кто иной, как Джон Кармак по выпуску первого Quake говаривал, что C++ для игр не предназначен, у него нельзя контролировать расход памяти и задержки по времени из-за перегрузки и конструкторов-декструкторов.

T>>>См. на Doom3 инструменты 2005 года.
RD>>Вы наверное удивитесь, но мир не стоит на месте. И в то время C++ возможно (ВОЗМОЖНО) действительно не подходил для написания игр. Но если ДАЖЕ он не подходил ТОГДА, то сейчас, после долгой эволюции уже подходит.

T>За счёт чего это? Те же конструкторы, те же деструкторы, то же непредсказуемое время из-за перегрузки.


Не развернёшь про непредсказуемое время?
Re[16]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 12.03.09 21:37
Оценка:
T>>За счёт чего это? Те же конструкторы, те же деструкторы, то же непредсказуемое время из-за перегрузки.

A>Не развернёшь про непредсказуемое время?


C++ не даёт создавать свои операторы, поэтому все перегружают уже существующие.

Получается, что a << b может означать и сдвиг, и вывод в файл.

Без профайлера и ассемблерного листинга не разобраться, Одного code review не достаточно.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[17]: [haskell] considered mainstream
От: Tonal- Россия www.promsoft.ru
Дата: 13.03.09 04:47
Оценка: +1
Здравствуйте, thesz, Вы писали:
T>>>За счёт чего это? Те же конструкторы, те же деструкторы, то же непредсказуемое время из-за перегрузки.
T>C++ не даёт создавать свои операторы, поэтому все перегружают уже существующие.
T>Получается, что a << b может означать и сдвиг, и вывод в файл.
T>Без профайлера и ассемблерного листинга не разобраться, Одного code review не достаточно.
Это у вас какой-то неправильный мёд! Его наверное готовят неправильные пчёлы.
Никакой неоднозначности нет. Зная типы a и b знаешь всё.
Профайлеров и листинов ассемблера не нужно.
Все затраты времени в языке детерминированы и могут быть учтены кроме внешних вызовов.
Чего не наблюдается в haskell-е, ну дык он вроде не для того.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[18]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 13.03.09 10:21
Оценка:
T>>>>За счёт чего это? Те же конструкторы, те же деструкторы, то же непредсказуемое время из-за перегрузки.
T>>C++ не даёт создавать свои операторы, поэтому все перегружают уже существующие.
T>>Получается, что a << b может означать и сдвиг, и вывод в файл.
T>>Без профайлера и ассемблерного листинга не разобраться, Одного code review не достаточно.
T>Это у вас какой-то неправильный мёд! Его наверное готовят неправильные пчёлы.

Это не у меня. Это у Джона Кармака. Хотя и у меня тоже, надо сказать.

T>Никакой неоднозначности нет. Зная типы a и b знаешь всё.

T>Профайлеров и листинов ассемблера не нужно.
T>Все затраты времени в языке детерминированы и могут быть учтены кроме внешних вызовов.

Какая сложность у new/delete для произвольного класса?

Зависит ли скорость выделения/освобождения памяти от количества и других параметров объектов, выделенных ранее?

Скорость работы C++ недостаточно детерминирована. Для её приемлемой определённости необходимо поработать ручками.

T>Чего не наблюдается в haskell-е, ну дык он вроде не для того.


Именно это и говорили про C++ в 1993-5 годах.

Удивительно даже.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.