Войти
ФлеймФорумПрограммирование

Что накодить на Haskell'е? (3 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#30
22:52, 25 сен 2011

bw
интересно, спасибо

#31
1:47, 26 сен 2011

bw
> Я для этих целей решил ковырять xmonad, и занятно и полезно.
:) походу тропы у всех одинаковые )
только вроде все собирались писать что то новое, а тут перешли уже и на ковыряние в XMonad, ни чего там интересного нету.
лучше ужь реактивное программирование ковырять.

#32
4:12, 26 сен 2011

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

> ни чего там интересного нету
Возможно. Но WM то хороший, я вот из целей попользовать, а не покодить, собираюсь на него переходить, да и то, только тогда, как обзаведусь тремя новенькими мониками :-). Ну а пока пользовать буду всяко Haskell подтянется. Так язык конечно хороший, но не понимаю куда его приткнуть в своей практике, а тут я как бы себе выбора не оставляю.

..bw

#33
11:43, 26 сен 2011

bw
> Но WM то хороший
WM ни чем не лучше аналогов написаных на других языках ) но да мне такие WM нравятся не скрою
> Ну а пока пользовать буду всяко Haskell подтянется.
WM настраивается один раз и о забывается ), так что ни чего особо там и не подтянешь )
> Так язык конечно хороший, но не понимаю куда его приткнуть в своей практике
вот я про это же ), сила хаскеля в основном в выводе типов, но я считаю лучше вывод типов встроить в более простые решения,
пускай даже не явно для пользователя, чем городить такой огород как в хаскеле, любой язык с динамической типизацией,
и сильным компилятором, может особо ни чем и не уступить хаскелю в плане вывода типов,
но зато иметь нормальные языковые конструкции

#34
13:26, 26 сен 2011

Шашки пиши. Потом оттрахаем Тараскины на пасцале Изображение

TarasB
> Да, я именно из-за этого не учу небыдлоязыки - я не знаю, что с ними делать.
Давай-давай. Подтягивайся к нам, к Богам. Я со вчерашнего дня в секте.

Первая программа (числа Фибоначчи):

-module(fib).
-export([fib/1]).

fib(N) -> fib(N, 1, 1).

fib(0, _, _) -> ok;

fib(N, F1, F2) ->
  io:format("~w~n", [F1]),
  fib(N - 1, F2, F1 + F2).

Вторая программа (простые числа):

-module(prime).
-export([prime/1]).

prime(Num) -> check([], 1, 3, Num).

check(List, _, _, 0) -> lists:reverse(List);

check(List, Prime, Div, Num) when Div * Div > Prime ->
  %io:format("~w~n", [Prime]),
  check([Prime | List], Prime + 2, 3, Num - 1);

check(List, Prime, Div, Num) when Prime rem Div =:= 0 ->
  check(List, Prime + 2, 3, Num);

check(List, Prime, Div, Num) ->
  check(List, Prime, Div + 2, Num).

Для сравнения: скорость генерации (и сохранения) первых 100к простых чисел (P.S. двойка выпадает, но и черт с ней) с помощью алгоритма выше:

1> c(prime).
{ok,prime}
2> timer:tc(prime, prime, [100000]).
{3590000,
 [1,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,
  79,83,89,97,101,103|...]}
3>

Итого 3.6 секунды.

#35
15:05, 26 сен 2011
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)

:)
простые числа некогда писать надо отъехать :)
да я и некогда разбирать особо твой алгоритм, я так понял там все в лоб )
для простых чисел вообще есть
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%88%D0%B5%D1%82%D0%BE… 5%D0%BD%D0%B0
и вот реализация на хаскеле

#36
15:08, 26 сен 2011

cNoNim
> fib 0 = 0
> fib 1 = 1
> fib n = fib (n-1) + fib (n-2)
Это ведь был троллинг, да?

#37
15:08, 26 сен 2011

cNoNim
> да я и некогда разбирать особо твой алгоритм, я так понял там все в лоб )
Я все нечетные числа пробую делить на все нечетные начиная с 3 до квадратного корня с проверяемого. Все. (ничего не напутал?)

cNoNim
> для простых чисел вообще есть
Давай мой :)

#38
15:09, 26 сен 2011

kipar
это был хаскель

#39
15:11, 26 сен 2011

И да, для простых чисел надоо использовать http://ru.wikipedia.org/wiki/Решето_Аткина

#40
15:11, 26 сен 2011

entryway
> Давай мой :)
вечером, ближе к ночи ),
а пока определи по какому алгоритму будем тестить )
мне на своем компе считать время генерации? или ты будешь мой код на хаскеле запускать )

#41
15:11, 26 сен 2011

cNoNim
Ты попробуй этим кодом посчитать fib 40.
У этого алгоритма экспоненциальная сложность.

#42
15:14, 26 сен 2011

kipar
> У этого алгоритма экспоненциальная сложность.
мы сейчас о чем вообще?
я просто привел кусок кода на хаскеле ), так как entryway попросил,
ни кто вроде меня не просил приводить оптимальный алгоритм

#43
15:15, 26 сен 2011

kipar
> У этого алгоритма экспоненциальная сложность.
Мы не оптимальное решение ищем, а сравниваем реализации одного и того же алгоритма на Erlang и Haskell

#44
15:16, 26 сен 2011

cNoNim
> ни кто вроде меня не просил приводить оптимальный алгоритм
Просто именно этот кусок я постил на говнокод.
Это не алгоритм, это безумие, нормальный алгоритм считает fib 10000 за миллисекунды, а этот не посчитает fib 40 за сутки (или за год, не помню точно).

Страницы: 1 2 3 4 5 6 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.