Author |
Message |
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
Так на днях застучал головой, второй винт, купил новый, поставил на него линь, собрал холесс, при старте пишет
При этом не интслаится:
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
28 Jun 2008 15:05 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
пока ставим вручную
бинарь в /usr/local/bin
либы в /usr/local/share/hope/lib
(как у оригинального Hope)
P.S. по идее оно нормально работает если пускать бинарь из текущего каталога (при условии что либы лежат тут же)
|
28 Jun 2008 22:06 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
Наконец-то дошли руки поправить Makefile, чтобы make install снова заработал
Путь для либ теперь /usr/local/share/hopeless (чтобы не конфликтовать с инсталляцией оригинального hope, если таковая существует), а также появился man hopeless
Пока не выкладываю - может ещё чего исправлю
|
02 Jun 2009 23:19 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
Отпустил funnylang.org - теперь надо ходить напрямую в http://shabarshin.com/funny/
|
09 Aug 2009 15:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
Заюзал базы данных - пока в виде sqlite3:
После этого вот такая программа: #!/usr/local/bin/hopeless -f uses db_sqlite; sql("sqlite.db","select * from memos;");
вернёт вот такой список: >> [["deliver project description", "10"], ["lunch with Chrustine", "100"]] : list (list string)
Вот исходный код модуля db_sqlite: | | | | Code: ! Database access (sqlite3)
uses string,lines,list;
dec pipes1 : list(char) # list(string) -> list(string); --- pipes1(nil,l) <= reverse(l); --- pipes1('|'::y,l) <= pipes1(y,nil::l); --- pipes1(x::y,nil) <= pipes1(y,(x::nil)::nil); --- pipes1(x::y,h::l) <= pipes1(y,(h<>(x::nil))::l);
dec pipes : list(list char) -> list(list(string)); --- pipes(nil) <= nil; --- pipes(x::y) <= pipes1(x,nil)::pipes(y);
dec sql : string # string -> list(list(string)); --- sql(file,statement) <= pipes(lines(read("!sqlite3 -noheader -list "<>file<>" '"<>statement<>"'")));
| | | | |
В будущем sqlite (как и mysql) можно будет встроить непосредственно в hopeless, чтобы не дёргать постоянно внешнюю программу и не перепосылать её вывод во временные файлы.
|
27 Aug 2009 20:01 |
|
|
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
Товаришь лектор вопросы можно начать задавать?
Как работать с lines, т.е. как получить доступ к произвольной перемнной?
В какой типа читает gets?
Как сранить две строки?
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
28 Aug 2009 13:26 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
функция lines бъёт текст (список букв) на строки (список списков букв)
переменных у нас нету, только аргументы функций и алиасы функциональных выражений
если ты про доступ к элементам списка, то по номеру можно получить злемент с помощью оператора @ (описан в list.hop)
согласно system.hop функция gets аргументов не имеет и возвращает список строк (т.е. список списков букв) пришедших из входного потока
сравнивать строки можно с помощью оператора =
|
28 Aug 2009 15:51 |
|
|
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
На счет сравнения я в принуипе так и думал, но почему тогда:
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
29 Aug 2009 11:00 |
|
|
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
Как узнать количество элементов списка?
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
29 Aug 2009 11:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
во-первых, write работает только как команда первого уровня - это нельзя вызывать изнутри функций или выражений, а во-вторых if подразумевает не только then, но и else:
length из модуля list.hop
Last edited by Shaos on 03 Apr 2010 17:16, edited 1 time in total.
|
29 Aug 2009 17:00 |
|
|
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
Надо писать не так:
а вот так
Когда пишеш программу с использованием функцмонального языка программирования надо на программу смотреть снизу.
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
01 Sep 2009 11:08 |
|
|
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
Кстати а что там в зопе вместо циклов?
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
01 Sep 2009 11:28 |
|
|
Mac Buster
Retired
Joined: 03 Aug 2003 22:37 Posts: 1474 Location: Moscow
|
_________________ Extreme Entertainment
|
01 Sep 2009 12:54 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
Если надо не все элементы списка обработать, а скажем только со второго по пятый, то можно использовать оператор ..
| | | | Code: uses range, list;
dec do : list num # list alpha -> list alpha; --- do (a :: b, l) <= l@a :: do (b, l); --- do (nil, l) <= nil;
do(2..5,[0,10,20,30,40,50,60,70,80]); ! вернет [20,30,40,50] do(2..5,"abcdefg"); ! вернет "cdef"
| | | | |
|
01 Sep 2009 18:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
04-Apr-2010 hopeless-v0.5.tar.bz2 (100K) * added '\r' to function "isspace" in ctype.hop * fixed function "dir" in system_win.hop * path to libraries changed to /usr/local/share/hopeless * created man file hopeless.1 (modified hope.1) * fixed "make install" for Hopeless * new library lib/db_sqlite.hop (database support with sqlite3) * added functions "del" and "write_to" to lib/system.hop * check for '\n' and '\r' before run commands ("!...") * defined constant "stdin" instead of functions "getc" and "gets" (lib/system.hop) * modified test _input.hop
|
03 Apr 2010 22:05 |
|
|