![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Тогда вот вам няшка как раз уровня песочницы.
Это исходник кода сортировки. В одну строчку. Без вызова внешних функций. Правда, на Хацкеле. Отсюда.
Это исходник кода сортировки. В одну строчку. Без вызова внешних функций. Правда, на Хацкеле. Отсюда.
qsort1 s = case s of {[] -> []; (x:xs) -> qsort1 [y | y<-xs, y<x] ++ x : qsort1 [y | y<-xs, y>=x]}
Ну или вот тоже красивый, но с вызовом filter.qsort2 :: Ord a => [a] -> [a]
qsort2 [] = []
qsort2 (p:xs) = (qsort2 lesser) ++ [p] ++ (sort2 greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
Третий - через partition, тоже ничево.qsort3 [] = []
qsort3 (p:xs) = (qsort3 lesser) ++ [p] ++ (qsort3 greater)
where (lesser, greater) = partition (< p) xs
Давайте, напишите мне то же самое на сях.
no subject
Date: 2012-07-18 06:38 pm (UTC)Слава, это спортивное программирование, типа как диггера решать. в крайнем случае системное или низкоуровневое - имеет очень узкое применение.
Прикладное - это когда sort(s)
С помощью прикладного можно реать миллион интересных задач, это инстурментарий. С помощью спортивного - только играться, как в шахматы ) хотя никто не спорит что это прикольно и лаконично! вопросов нет. как задачка для поразмыслить субботним вечером сидя в кресле в саду :)
Я лично ненавижу програмирование. Поэтому пишу так
layout:{
"nicegraph":{"type":"graph","source":"api/mygraphobject"},
"nicetable":{"type":"table","source":"api/my555"}}
и оно мне рисует расписной скрин, который растиягвается и работает во всех устройствах и браузерах, c красивым графом (с дефолтными настройками все, конешно), который можно крутить ов все стороны, и табличкой, которую сразу можно редактировать, добавлять, сортировать, группировать, экспортировать, оно сразу приязано к базе через апи, к экспортным фильтрам и тп.
как именно оно там внутрях это делает - я написал один раз и надеюсь когда нибудь забуду нахер :)
no subject
Date: 2012-07-18 07:11 pm (UTC)"Узкое применение": посмотри, например, вот это (http://websharper.com/samples/TogglePanel). Там HTML+AJAX, и всё это со строгой типизацией. Оно тупо не скомпилируется, если кривое!
"nicegraph": Ты пытаешься путать зелёное и сладкое. Nicegraph - это библиотечная штука. Её кто-то уже написал, как и sort. Ни на каком языке программирования их никто не переписывает, они уже есть.
Так что когда показывают самолёт, не надо говорить, что в "Запорожце" есть модный набалдашничек на переключателе передач. Набалдашничек и в самолёте есть. ;)
no subject
Date: 2012-07-19 07:54 am (UTC)no subject
Date: 2012-07-19 03:25 pm (UTC)Ты сравниваешь реализацию и внешний интерфейс? Так у моих программ (у всех!) внешний интерфейс вообще без параметров:
main();
ЗдОрово, правда? :)
В постинге писалось не о том, как выглядит интерфейс метода sort, а о том, как написать ему потроха. Без или с минимальным использованием библиотек.
no subject
Date: 2012-07-18 07:47 pm (UTC)Правильно.
1st class functions и лямбды придумали уроды.
Clojures придумали извращенцы.
Функциональный анализ (ветвь алгебры), все эти множества функций над множествами функций придумали шепелявые старухи (вспоминаю свою преподшу из книвера).
А за комбинатор неподвижной точки в приличном обществе можно в морду схлопотать! :)))