Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=9418045&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 01:19:46 2016
Кодировка: Windows-1251
Самоприменимость или Three Futamura Projections - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 0 | 20 | 40 | показать все | след. страница
unkulunkulu
unkulunkulunkulu

Рег.: 12.11.2006
Сообщений: 18453
Из: 13000
Рейтинг: 11759
  Самоприменимость или Three Futamura Projections
      30.03.2010 19:31
3

Ладно, это все-таки development, а не h&s, так что пусть это будет здесь: http://habrahabr.ru/blogs/crazydev/47418/

Перенесено модератором DarkGray из ветки в разделе Development



Редактировал DarkGray (02.04.2010 18:02)
unkulunkulu
unkulunkulunkulu

Рег.: 12.11.2006
Сообщений: 18453
Из: 13000
Рейтинг: 11759
  Re: Google Summer Of Code [специальное предложение] [re: Krasin]
      30.03.2010 19:39
 

Не, ну просто все шутят о всяких самоприменимостях и надстройках, но все-таки немного не дотягивают до нужного уровня мозговскрыва. Просто вчера перед отходом ко сну вспоминали с товарищем эту статейку, вот, решил поделиться с общественностью :)

halyavin
кфмн

Рег.: 14.12.2005
Сообщений: 916
Из: Moscow
Рейтинг: 622
  Re: Google Summer Of Code [специальное предложение] [re: unkulunkulu]
      03.04.2010 10:53
-2

Фигня там написана. Засунуть интерпретируемый код в ресурсы программы-интерпретатора - это не значит написать компилятор.

unkulunkulu
unkulunkulunkulu

Рег.: 12.11.2006
Сообщений: 18453
Из: 13000
Рейтинг: 11759
  Re: Google Summer Of Code [специальное предложение] [re: halyavin]
      03.04.2010 11:34
 

никто не предлагает так писать компилятор =]

Basilio
GreenOne

Рег.: 14.10.2002
Сообщений: 13750
Из: Москва
Рейтинг: 3476
  Re: Самоприменимость или Three Futamura Projections [re: unkulunkulu]
      03.04.2010 20:00
1

скажите, PHP таки порвало Java ?

unkulunkulu
unkulunkulunkulu

Рег.: 12.11.2006
Сообщений: 18453
Из: 13000
Рейтинг: 11759
  Re: Самоприменимость или Three Futamura Projections [re: Basilio]
      04.04.2010 09:33
 

Точно не знаю, но вот Development - замечательный раздел :mad:

DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: unkulunkulu]
      08.04.2010 14:32
 

какой-нибудь язык умеет записывать в декларативном виде частичные вычисления?

например, что:
items.OrderBy(f).Take(k) == items.Min(k, f)


monoid

Рег.: 14.02.2004
Сообщений: 1689
Из: ГЗ::Б::12
Рейтинг: 1331
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 15:34
1

С++ (boost::bind)



#
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: monoid]
      08.04.2010 15:41
 

Quote:

С++ (boost::bind)




приведи, пожалуйста, примерчик.

зы
помню, что в boost-е можно было записать только какие-то простые варианты.

ayvango
ушастый

Рег.: 10.01.2006
Сообщений: 27732
Из: Воронеж
Рейтинг: 11833
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 18:36
 

ну смотря в каком смысле частичные. Если как связь функции и переменной - то хаскель справляется нативно, python через funtools.partial. Но ни тот, ни другой не делает полной оптимизации как описано в статье, например не выкидывает пустые ветвления кода и прочее. Хотя часть оптимизаций в хаскеле возможно есть, но только как часть более общих оптимизаций, присущих функциональным языкам.



Сеть темна и полна ужасов
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: ayvango]
      08.04.2010 18:40
 

Quote:

Если как связь функции и переменной - то хаскель справляется нативно, python через funtools.partial




но запись в них императивная, а не декларативная.
или я ошибаюсь?

ayvango
ушастый

Рег.: 10.01.2006
Сообщений: 27732
Из: Воронеж
Рейтинг: 11833
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 20:00
 

Quote:

но запись в них императивная, а не декларативная.
или я ошибаюсь?



поясни, что ты имел в виду?

хаскел:
plusone = (+1)

питон:
plusone = functools.partial(int.__add__,1)



Сеть темна и полна ужасов
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: ayvango]
      08.04.2010 20:19
 

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

ayvango
ушастый

Рег.: 10.01.2006
Сообщений: 27732
Из: Воронеж
Рейтинг: 11833
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 20:27
 

можешь расшифровать словами что делает твой пример. А то я не вполне понял



Сеть темна и полна ужасов
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: ayvango]
      08.04.2010 20:38
 

Quote:

можешь расшифровать словами что делает твой пример. А то я не вполне понял




он говорит, что взять первых k элементов от коллекции items, отсортированной по критерию f - это тоже самое, что взять k минимальных(по критерию f) элементов из коллекции items

ayvango
ушастый

Рег.: 10.01.2006
Сообщений: 27732
Из: Воронеж
Рейтинг: 11833
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 20:47
 

то есть позволяет сравнивать функции? Как ты это себе представляешь (функции одинаковы если на любом наборе входных данных дают одинаковый результат? Эта задача алгоритмически не разрешима, вряд ли какой компилятор сможет помочь.
Хаскель скажет, что не может сравнивать функции, потому что они не являются членами класса Eq, и для них не реализован оператор (==)
Питон просто сравнит указатели (для питона все объекты сравниваются одинаково - по указателям)



Сеть темна и полна ужасов
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: ayvango]
      08.04.2010 20:50
 

Quote:

то есть позволяет сравнивать функции?




позволяет записывать, что вот такая-то последовательность вызовов равна вот такой более простой.

ayvango
ушастый

Рег.: 10.01.2006
Сообщений: 27732
Из: Воронеж
Рейтинг: 11833
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 20:55
 

хаскель ровно это и делает.
Питон - нет. Просто создает новую функцию, которая получена из старой частичным применением аргументов. Таким образом новая функция равна старой, а старая не равна новой, она про нее ничего не знает.
У хаскеля полное равноправие. Потом можешь посмотреть как там определен класс Eq.
Программист должен определить либо оператор (==) либо оператор (/=) либо оба. В первых двух случаях хаскель доопределит все необходимое сам. Потому что у него записано (==) = not (/=)



Сеть темна и полна ужасов
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Самоприменимость или Three Futamura Projections [re: ayvango]
      08.04.2010 20:58
 

похоже, это не то что я хочу, то что ты говоришь можно и в C записать, только толку с этого будет 0.

reincarnation
knight

Рег.: 12.09.2006
Сообщений: 719
Рейтинг: 666
  Re: Самоприменимость или Three Futamura Projections [re: DarkGray]
      08.04.2010 22:00
1

В GHC есть прагма RULES, она позволяет такие замены делать.
http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/rewr...

Страницы: 0 | 20 | 40 | показать все | след. страница

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы
>>
Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в