LINUX.ORG.RU

Подайте, люди добрыя :-)


0

0

Не студент. Не учусь. Хочу код. ;-)

Увидел на одном форуме просьбу студента сделать календарик - вводится какому дню недели соответствует первое число и количество дней в месяце, выводится в семь столбцов календарик. От нечего делать написал решение на С++.

Сижу изучаю хаскель. Пока где-то в начале ;-( на стадии понимания отличия a -> a -> a от (a-> a) -> a.

В общем, хочу на хаскеле календарик, не могу сам. Напишите, кому не влом, плс.

пруф здесь: http://foren.germany.ru/showmessage.pl?Number=14867409&Board=programmer

Ответ на: комментарий от LamerOk

> Хаскель - это чистый функциональный язык. На нем не пишут календариков.

т.е. на хаскеле нельзя даже календарик написать? закапывайте ^___^

isden ★★★★★
()
Ответ на: комментарий от Love5an

факториал. Или, монадный трансформер

а на лиспе можно написать что угодно как угодно - только почему-то никто не пишет ;)

jtootf ★★★★★
()
Ответ на: комментарий от Love5an

>монадный трансформер.
И это всего-то для того, чтобы написать календарь? Втопку это УГ.

anonymous
()
Ответ на: комментарий от isden

> т.е. на хаскеле нельзя даже календарик написать? закапывайте ^___^

Он гонит, средства ввода-вывода там имеются.

TirNaNOg
() автор топика
Ответ на: комментарий от jtootf

>а на лиспе можно написать что угодно как угодно - только почему-то никто не пишет ;)
Потому что УГ.

anonymous
()
Ответ на: комментарий от LamerOk

>Хаскель - это чистый функциональный язык. На нем не пишут календариков.

Календарик на один месяц вроде, абстрактный. Так вычеты же, как раз для хаскеля должно годиться, разве нет? А что годится тогда?

mclaudt
()

Здравствуйте! У нас сегодня лекция по ленивым вычислениям... Какие будут вопросы? :P

Macil ★★★★★
()
Ответ на: комментарий от Love5an

Это ж стэк оверфлоу.

это у вас просто хвостовая рекурсия не оптимизируется. это лечат :)

jtootf ★★★★★
()
Ответ на: комментарий от Macil

> Здравствуйте! У нас сегодня лекция по ленивым вычислениям... Какие будут вопросы? :P

Всё, что связанно с ленивыми вычислениями и бесконечными списками, затруднения не вызывает при изучении хаскеля. :-)

TirNaNOg
() автор топика
Ответ на: комментарий от Macil

Здравствуйте! У нас сегодня лекция по ленивым вычислениям... Какие будут вопросы?

расскажите, пожалуйста, про выражение динаморфизмов через хрономорфизмы. спасибо

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Зато двадцать постов. К концу первой сотни кто-нибудь таки да напишет. Правда, недели будут начинаться с воскресенья, а про вискосные года в первой версии забудут, а во второй - включат кратные стам.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

К концу первой сотни кто-нибудь таки да напишет

но не на Haskell, а на Fortress; и не календарь, а калькулятор. впрочем, к тому времени уже будет неважно - ключевым аспектом спора станет скорость кидания исключений по сравнению с C++, и возможности параллелизации на гетерогенном кластере

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

Надо сказать, тема не лишена чувства стиля. Я получил третий за сегодня повод для смеха, а день ведь очень тяжёлый ))

den73 ★★★★★
()
Ответ на: комментарий от anonymous

То есть комьюнити у хаскеля никуда не годится.

Просто оно - коммьюнити - искусно маскируется. И его в принципе можно понять! Вот представьте, тут, по ЛОРу, рыщат толпы злых хедхантеров-папараци, которые только и мечтают поймать в свои грязные ручонки Настоящего Лиспера и сделать с ним что-то нехорошее. Они просто косяками ходят вокруг и облизываются. Ну вот какой нормальный человек в трезвом уме и здравой памяти будет в таких условиях Творить скажите мне пожалуйста? Сплошная антисанитария. Вот и приходится им ныкаться кто где.

PS: Ходят слухи, что темными-темными ночами, когда хедхантеры по бОльшей части спят, они все-таки выходят на свет и дают один-два а иногда даже и целых три Мудрых Совета. Но это бывает очень-очень редко да и неправда наверное.

bibi
()
Ответ на: комментарий от bibi

неправда. лисперы - это миф ЛОРа. их не существует.

isden ★★★★★
()
Ответ на: комментарий от anonymous

То есть комьюнити у хаскеля никуда не годится.

зато из-за широкой спины хаскеля выглядывает коллективный инопланетный разум, скрывающийся под псевдонимом Олег Киселёв

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

зато из-за широкой спины хаскеля выглядывает коллективный инопланетный разум, скрывающийся под псевдонимом Олег Киселёв

Гугл конечно же бессовестно, я верю, но вдруг и вправду он?! На первой же строке.

http://www.kommersant.ru/doc-rss.aspx?DocsID=854599

bibi
()
Ответ на: комментарий от bibi

вдруг и вправду он?! На первой же строке.

настоящие Олеги Киселёвы на первых строках не мелькают. секретность, понимаете ли

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

на лиспе можно написать TirNaNOg`а который от нечего делать напишет на C++ календарик, таким вот затейливым способом решают задачи лисперы.

wfrr ★★☆
()
Ответ на: комментарий от jtootf

Проиграл

backtrace

0: (UNIX::SIGSEGV-HANDLER #<unused-arg>
                         #<unused-arg>
                         #.(SYSTEM:INT-SAP #x3DEFCC1C))
1: (UNIX::SIGSEGV-HANDLER 3
                         #<unused-arg>
                         #<unused-arg>
                         #.(SYSTEM:INT-SAP #x3DEFCA1C))[:EXTERNAL]
2: ("call_into_lisp+#x8C [#x806540C] cmucl")
3: ("funcall3+#x32 [#x8045402] cmucl")
4: ("interrupt_handle_now+#x105 [#x8010940] cmucl")
5: (EQUAL #<Unprintable Instance {6616663D}> #<ARRAY-TYPE SIMPLE-BASE-STRING>)
6: (EQUAL
   (#<Unprintable Instance {6616663D}> . #<Unprintable Instance {642F3365}>)
   (#<ARRAY-TYPE SIMPLE-BASE-STRING> #<MEMBER-TYPE NULL>))
7: ((FLET #:G30 KERNEL::%TYPE-INTERSECTION-CACHE-LOOKUP))
8: (KERNEL::%TYPE-INTERSECTION
   (#<ARRAY-TYPE SIMPLE-BASE-STRING> #<MEMBER-TYPE NULL>))
9: (KERNEL::UNION-COMPLEX-SUBTYPEP-ARG2 #<ARRAY-TYPE SIMPLE-BASE-STRING>
                                       #<UNION-TYPE LIST>)
10: (KERNEL:CSUBTYPEP #<ARRAY-TYPE SIMPLE-BASE-STRING> #<UNION-TYPE LIST>)
11: (MAKE-SEQUENCE SIMPLE-STRING 12 :INITIAL-ELEMENT NIL)
12: (DEFAULT-DIRECTORY)
13: (LISP::ENVIRONMENT-INIT)
14: ((LABELS LISP::%RESTART-LISP SAVE-LISP))
15: ((LABELS LISP::RESTART-LISP SAVE-LISP))

anonymous
()
Ответ на: комментарий от anonymous

s/Проиграл/Проиграл лиспер/g

anonymous
()
Ответ на: комментарий от anonymous
0: (UNIX::SIGSEGV-HANDLER #<unused-arg>  #<unused-arg>
........

Простите мой французский, но... это она что - в корку упала?! Неужели на столь высокоуровневом и благородном языке как LISP можно написать программу, которая будет вести себя как обычный подзаборный босяк на C :-?

bibi
()
Ответ на: комментарий от bibi

это она что - в корку упала?!

он умер, но пообещал вернуться:

14: ((LABELS LISP::%RESTART-LISP SAVE-LISP))
15: ((LABELS LISP::RESTART-LISP SAVE-LISP))

этим он как бы говорит нам: I'll be back

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

этим он как бы говорит нам: I'll be back

Ну т.е. получается, что челябинские лисперы настолько суровы, что в качестве 'исключения' используют SIGSEGV :-?

PS: Нет, я не знаю, что должна делать приведенная выше программа, но чтобы вот с такой вот легкостью и непринужденностью не то что прострелить - напрочь отстрелить себе ногу буквально в один символ.. Воистину, LISP - могучий язык! Верую!

bibi
()
Ответ на: комментарий от jtootf

> но не на Haskell, а на Fortress; и не календарь, а калькулятор.

ну и где полет фантазии? я писал календарь на sql.

точнее, на MS Access SQL (там у него расширения), а данные для него экспортировались из текстушки, сгенеренной небольшой программкой на С (тогда я не знал еще про postscript)

ключевым аспектом спора станет скорость кидания исключений по сравнению с C++

догадываюсь кто это затеит :-)

и возможности параллелизации на гетерогенном кластере

а это кто затеит?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от bibi

> Простите мой французский, но... это она что - в корку упала?! Неужели на столь высокоуровневом и благородном языке как LISP можно написать программу, которая будет вести себя как обычный подзаборный босяк на C :-?

В на столько высокоуровневом и благородном языке можно из «Большой Берты» выстрелить в ноги хоть всему континенту сразу. В том мощь и заключается.

mv ★★★★★
()
Ответ на: комментарий от bibi

Это поди clisp какой-нибудь.
SBCL в корку не падает, он перехватывает сигнал и заворачивает его в лисповское condition.
Вызывать же это можно довольно просто, например так:
(sb-sys:sap-ref-32 (sb-sys:int-sap (random (expt 2 32))))

Love5an
()
Ответ на: комментарий от www_linux_org_ru

а это кто затеит?

не я. точно знаю, что рано или поздно придёт Kuka - скажет что всё дело в high programmability, и что языки с низкой programmability сосут; но что это такое - не объяснит

jtootf ★★★★★
()
Ответ на: комментарий от bibi

не то что прострелить - напрочь отстрелить себе ногу буквально в один символ

f :- f.

?- f.

мёртвая петля для адептов логического программирования

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

строчка на перле сколлапсировала до устрица, и перловщики стали переучиваться на хацкелюг.

wfrr ★★☆
()
Ответ на: комментарий от jtootf

мёртвая петля для адептов логического программирования

?- f :- f.
ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)

Фиг вам! Это же не лисп какой-нибудь.

логического программирования

декларативно-логического.

anonymous
()
Ответ на: комментарий от TirNaNOg

> first <- do putStr «Enter start day of week (1..7): » ; readLn

days <- do putStr «Enter count days in month: » ; readLn


Какой же это нафик календарь, если он _запрашивает_ день недели и число дней в месяце?!?

На пересдачу.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

>Какой же это нафик календарь, если он _запрашивает_ день недели и число дней в месяце?!?

rtfm условие задачи =)

Waterlaz ★★★★★
()
Ответ на: комментарий от LamerOk

Какой-какой, напечатанный. -) Условие задачи было такое.

TirNaNOg
() автор топика
Ответ на: комментарий от jtootf

>>вычеты много для чего годятся. пруфлинк:

А то я и не знал.

Давай я спрошу второй раз без синтаксических заусенцев, об которые ты цепляешься.

Какой язык, если не хаскел, на твой взгляд больше (красивее) подходит для работы с вычетами?

mclaudt
()
Ответ на: комментарий от mclaudt

> Какой язык, если не хаскел, на твой взгляд больше (красивее) подходит для работы с вычетами?

C++ конечно.

Z<17> i=1;

А как ты будешь записывать в хаскеле хотя бы тип Z₁₇ ?

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.