
[Anonymous]
13.05.2016
16:27:39
а в хаскеле по логике

Andrei
13.05.2016
16:27:49

Aldar
13.05.2016
16:28:13
в хаскеле вместо того чтобы аргументы вычислять просто заменит тело функции на её определение

Andrei
13.05.2016
16:28:19
Ну не по логике, там просто вычисление это кое-что другое. Не то, что мы в плюсах понимаем.

Google

[Anonymous]
13.05.2016
16:28:20
Значит ленивые это круто?)

Andrei
13.05.2016
16:28:35
Это не круто, это просто одна из стратегий.

[Anonymous]
13.05.2016
16:28:47
Не нужно тратить лишних ресурсов, скорость вычисление и т.п.

Andrei
13.05.2016
16:28:48
Иногда тебе надо форсировать вычисления.
в хаскеле для этого есть специальные операторы

Aldar
13.05.2016
16:29:27
большой недостаток, что при ленивых вычислениях остаются ненужные выражения, которые жрут память
иногда

Ned Ogl
13.05.2016
16:29:46

Aldar
13.05.2016
16:29:47
не всегда

Andrei
13.05.2016
16:29:50
И да, вот это тоже. У тебя сслыки на непроделанные вычисления.
Но там тоже это решаемо.
Но это уже детали реализации языка.

Google

Ned Ogl
13.05.2016
16:30:08

Andrei
13.05.2016
16:30:33
Ну, для этого есть оптимизация хвостовой рекурсии и всё такое
вычисления с аккумулятором
и форсирование вычислений.

Ned Ogl
13.05.2016
16:30:52
Память.

[Anonymous]
13.05.2016
16:31:03
Большое спасибо вроде как понял)

Andrei
13.05.2016
16:31:07
Не за что.
Но отложенные вычисления не всегда лучше энергичных.
Особенно если это вычисления на массиве например, отложенные медленее.
Из-за дополнительной индирекции на данные, и из-за гарантированного мисса мимо кеша инструкций.

Ned Ogl
13.05.2016
16:32:39
Я за ленивые только в ФП
Имхо

[Anonymous]
13.05.2016
16:32:44
А вот интересно, в каком-нибудь языке функции выполняются заранее, независимо от их вызова?

Andrei
13.05.2016
16:32:55
Да.

Ned Ogl
13.05.2016
16:32:58

Andrei
13.05.2016
16:33:07
Во всех языках на самом деле.
:3

Ned Ogl
13.05.2016
16:33:17

[Anonymous]
13.05.2016
16:33:36

Andrei
13.05.2016
16:33:50
Не путайся, просто дело не в языках.

Google

Andrei
13.05.2016
16:33:54
В процессорах.

Ned Ogl
13.05.2016
16:33:56

Aldar
13.05.2016
16:34:00
ещё у ленивых вычислений недостаток, что приходится одно и то же выражение много раз вычислять
с этим борятся конечно

Andrei
13.05.2016
16:34:10

Ned Ogl
13.05.2016
16:34:17

Andrei
13.05.2016
16:34:23
в хаскеле сслыки на отложенные вычисления

[Anonymous]
13.05.2016
16:34:25

Andrei
13.05.2016
16:34:31
Не,не о том.
Сейчас.
Процессоры например arm-ы

Aldar
13.05.2016
16:34:45
правда, если бы не было оптимизации

Ned Ogl
13.05.2016
16:34:47
А, понял
Gcc умеет в инлайн когда простые функции. Итд

Andrei
13.05.2016
16:34:57
в общем архитектуры power
выполняют иногда инструкции
не в том порядке, в каком они написаны
а на x86 любом есть branch prediction
то есть если у тебя есть if в коде, у тебя процесор попытается угадать, какое значение условного выражения будет и начнет заранее вычислять тело if-а
или else
в зависимости от предсказания перехода

Google

Ned Ogl
13.05.2016
16:37:02

[Anonymous]
13.05.2016
16:37:08
Интересно

Ned Ogl
13.05.2016
16:37:11
Если элс пустой

Andrei
13.05.2016
16:37:12
суперскалярные вычисления итд

[Anonymous]
13.05.2016
16:37:27
Что "курить" чтобы все это знать?)

Andrei
13.05.2016
16:37:33
у тебя процессор фетчит(вытаскивает из памяти) не по одной инструкции
а сразу пачку
и выполняет их как ему заблагорассудится
Лишь бы зависимости между порядком сохранялись
Не знаю, я курил сотни случайных источников.

Admin
ERROR: S client not available

Ned Ogl
13.05.2016
16:38:31

Andrei
13.05.2016
16:38:33
Опыт на работе итд.

Ned Ogl
13.05.2016
16:38:58

Andrei
13.05.2016
16:39:06
Постараюсь.

Ned Ogl
13.05.2016
16:39:47
Где-то читал про обёртку асм команд в С-шные чтобы С-железячникам не учить асм. Как это называется?
Сама обёртка, или принцип оборачивания под конкретные процы. И тд...

[Anonymous]
13.05.2016
16:41:11

Andrei
13.05.2016
16:41:29
есть microapl relogix непример, который умеет так делать

Ned Ogl
13.05.2016
16:41:31

Google

Andrei
13.05.2016
16:42:00
вообще, это называется decompiler :D

Ned Ogl
13.05.2016
16:42:07
А так же вкратце объясни, что такое mathcall
Или: как работает math.h?

Andrei
13.05.2016
16:42:56
Где?)
https://habrahabr.ru/post/182002/
Где?)
https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D0%B9%D0%B5%D1%80

Ned Ogl
13.05.2016
16:44:56
2^sqrt(2)
pow и sqrt хотяб

Andrei
13.05.2016
16:45:45
Эм...Оно просто вызывает подпрограмму на FPU

Сергей
13.05.2016
16:45:46
Вангую, что mathcall это обертка fastcall
Или ты о чем

[Anonymous]
13.05.2016
16:46:57

Ned Ogl
13.05.2016
16:47:51
Часть асм fpu?

Andrei
13.05.2016
16:48:25
Ну всмысле, ты представляешь сколько тактов косинус бы занял без мат. сопроцессора? :D
Я где-то читал что типа в 70 раз быстрее FPU инструкции выполняются

Сергей
13.05.2016
16:50:04
Аа про это

Ned Ogl
13.05.2016
16:50:35
Я туп, просвети, сенсей

Сергей
13.05.2016
16:50:51
Лол

Andrei
13.05.2016
16:52:13
Ну просто есть сет инструкций
который выполняет не процессор