73! - 2
От: deniok Россия  
Дата: 03.04.08 05:57
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:


LCR>[off]Роман, а почему в подписи не написать чуть компактнее: !73x [/off]


CAFы, будучи встречены, должны быть максимально редуцированы на стадии компиляции — для эффективности.

24.04.08 12:20: Ветка выделена из темы несложный ФЯ с человеческим лицом
Автор: dmz
Дата: 26.03.08
— VladD2
Re: 73! - 2
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 03.04.08 09:12
Оценка:
deniok,

LCR>>[off]Роман, а почему в подписи не написать чуть компактнее: !73x [/off]


D>CAFы, будучи встречены, должны быть максимально редуцированы на стадии компиляции — для эффективности.


А как же ленивость?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[2]: 73! - 2
От: deniok Россия  
Дата: 03.04.08 09:30
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>deniok,


LCR>>>[off]Роман, а почему в подписи не написать чуть компактнее: !73x [/off]


D>>CAFы, будучи встречены, должны быть максимально редуцированы на стадии компиляции — для эффективности.


LCR>А как же ленивость?


Ты считаешь, что CAF
c (3::Int) where c = (* 2)

не стоит оптимизировать в 6::Int на стадии компиляции? Ленивость — не культ, а руководство к разумному бездействию
Re[3]: 73! - 2
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 04.04.08 05:51
Оценка:
deniok,

D>>>CAFы, будучи встречены, должны быть максимально редуцированы на стадии компиляции — для эффективности.


LCR>>А как же ленивость?


D>Ты считаешь, что CAF

D>
D>c (3::Int) where c = (* 2)
D>

D>не стоит оптимизировать в 6::Int на стадии компиляции? Ленивость — не культ, а руководство к разумному бездействию

Этот конечно стоит. А вот этот?
c ([1..]::[Int]) where c = map (* 2)
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[4]: 73! - 2
От: deniok Россия  
Дата: 04.04.08 06:55
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Этот конечно стоит. А вот этот?

LCR>
LCR>c ([1..]::[Int]) where c = map (* 2)
LCR>


А почему нет? Достаточно вспомнить, что [x..] — шорткат для [x,succ x..] и мэппинг любой линейной конструкции нам по плечу:
map (* 2) ([1..]::[Int])
->    map (* 2) (enumFrom 1::Int)
->    map (* 2) (enumFromThen 1::Int 2::Int)
->    enumFromThen (1::Int * 2) (2::Int * 2)
->    enumFromThen 2::Int 4::Int
->    [2,4..]::[Int]

Вот нелинейные, типа
map (^ 2) ([1..]::[Int])

это да, чэллендж
Re[5]: 73! - 2
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 04.04.08 08:17
Оценка:
deniok,

->>    [2,4..]::[Int]

Это максимально редуцированная форма? Там осталось неприменённым бесконечное количество succ (гы). Я не прав?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[6]: 73! - 2
От: deniok Россия  
Дата: 04.04.08 10:50
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>deniok,


LCR>
->>>    [2,4..]::[Int]
LCR>

LCR>Это максимально редуцированная форма? Там осталось неприменённым бесконечное количество succ (гы). Я не прав?

Ну, я имел ввиду разумные максимальные редукции. Готов признать, что 73! лучше во многих отношениях, чем его явное значение

Ну и в любом случае здесь уже можно вести речь о тонком тюнинге на основе статистики использования.
Re[7]: 73! - 2
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 05.04.08 09:36
Оценка:
deniok,

D>Ну, я имел ввиду разумные максимальные редукции. Готов признать, что 73! лучше во многих отношениях, чем его явное значение

D>Ну и в любом случае здесь уже можно вести речь о тонком тюнинге на основе статистики использования.

Согласен
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: 73! - 2
От: frogkiller Россия  
Дата: 24.04.08 20:59
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, Lazy Cjow Rhrr, Вы писали:



LCR>>[off]Роман, а почему в подписи не написать чуть компактнее: !73x [/off]


D>CAFы, будучи встречены, должны быть максимально редуцированы на стадии компиляции — для эффективности.


Блин, с кем вы сейчас разговаривали, и кто все эти люди?
Чувствую свою ущербность, но не могу понять, в чём именно.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[2]: 73! - 2
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 25.04.08 05:12
Оценка:
frogkiller,

D>>CAFы, будучи встречены, должны быть максимально редуцированы на стадии компиляции — для эффективности.


F>Блин, с кем вы сейчас разговаривали, и кто все эти люди?

F>Чувствую свою ущербность, но не могу понять, в чём именно.

Вылазь из танка.

!73x -> 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
CAF -> Constant Applicative Form
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[2]: 73! - 2
От: BulatZiganshin  
Дата: 25.04.08 12:21
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>Блин, с кем вы сейчас разговаривали, и кто все эти люди?

F>Чувствую свою ущербность, но не могу понять, в чём именно.

в знании только C++?
Люди, я люблю вас! Будьте бдительны!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.