bytebuster463: (IT Crowd Jen)
[personal profile] bytebuster463
Тогда вот вам няшка как раз уровня песочницы.
Это исходник кода сортировки. В одну строчку. Без вызова внешних функций. Правда, на Хацкеле. Отсюда.
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
Давайте, напишите мне то же самое на сях.

Date: 2012-07-18 06:38 pm (UTC)
From: [identity profile] zvzz.livejournal.com
+1

Слава, это спортивное программирование, типа как диггера решать. в крайнем случае системное или низкоуровневое - имеет очень узкое применение.
Прикладное - это когда sort(s)

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

Я лично ненавижу програмирование. Поэтому пишу так
layout:{
"nicegraph":{"type":"graph","source":"api/mygraphobject"},
"nicetable":{"type":"table","source":"api/my555"}}

и оно мне рисует расписной скрин, который растиягвается и работает во всех устройствах и браузерах, c красивым графом (с дефолтными настройками все, конешно), который можно крутить ов все стороны, и табличкой, которую сразу можно редактировать, добавлять, сортировать, группировать, экспортировать, оно сразу приязано к базе через апи, к экспортным фильтрам и тп.

как именно оно там внутрях это делает - я написал один раз и надеюсь когда нибудь забуду нахер :)

Date: 2012-07-18 07:11 pm (UTC)
From: [identity profile] bytebuster463.livejournal.com
Дружище, я не хочу никого переубеждать, да и пост был с подколом.

"Узкое применение": посмотри, например, вот это (http://websharper.com/samples/TogglePanel). Там HTML+AJAX, и всё это со строгой типизацией. Оно тупо не скомпилируется, если кривое!

"nicegraph": Ты пытаешься путать зелёное и сладкое. Nicegraph - это библиотечная штука. Её кто-то уже написал, как и sort. Ни на каком языке программирования их никто не переписывает, они уже есть.

Так что когда показывают самолёт, не надо говорить, что в "Запорожце" есть модный набалдашничек на переключателе передач. Набалдашничек и в самолёте есть. ;)

Date: 2012-07-19 07:54 am (UTC)
From: [identity profile] zvzz.livejournal.com
как так "кто-то написал". я и написал, вплоть до низкоувневых вещей типа конфигурации сортировки. и переписывал на яве, похапе, яскрипте. но очень это все не люблю, неправильно это - заниматься такими вещами. надо города строить, корабли в космоз запускать, ну и всякое такое! ))

Date: 2012-07-19 03:25 pm (UTC)
From: [identity profile] bytebuster463.livejournal.com
Тогда я совсем перестаю понимать.
Ты сравниваешь реализацию и внешний интерфейс? Так у моих программ (у всех!) внешний интерфейс вообще без параметров:

main();

ЗдОрово, правда? :)

В постинге писалось не о том, как выглядит интерфейс метода sort, а о том, как написать ему потроха. Без или с минимальным использованием библиотек.

Date: 2012-07-18 07:47 pm (UTC)
From: [identity profile] bytebuster463.livejournal.com
И ещё копипаста:

Правильно.
1st class functions и лямбды придумали уроды.
Clojures придумали извращенцы.
Функциональный анализ (ветвь алгебры), все эти множества функций над множествами функций придумали шепелявые старухи (вспоминаю свою преподшу из книвера).
А за комбинатор неподвижной точки в приличном обществе можно в морду схлопотать! :)))
Edited Date: 2012-07-18 07:47 pm (UTC)

Profile

bytebuster463: (Default)
bytebuster463

April 2017

S M T W T F S
       1
2 3 45678
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 11th, 2025 03:49 pm
Powered by Dreamwidth Studios
OSZAR »