Code: Select all
fpc-2.2.0.x86_64-linux.tar
Code: Select all
sw-19-001:/home/cr0acker/hopeless-v0.4 # make install
make: *** Нет правила для сборки цели `../test/*.in', требуемой для `errors'. Останов.
Moderator: Shaos
Code: Select all
fpc-2.2.0.x86_64-linux.tar
Code: Select all
sw-19-001:/home/cr0acker/hopeless-v0.4 # make install
make: *** Нет правила для сборки цели `../test/*.in', требуемой для `errors'. Останов.
пока ставим вручнуюcr0acker wrote:Так на днях застучал головой, второй винт, купил новый, поставил на него линь, собрал холесс, при старте пишетПри этом не интслаится:Code: Select all
fpc-2.2.0.x86_64-linux.tar
Code: Select all
sw-19-001:/home/cr0acker/hopeless-v0.4 # make install make: *** Нет правила для сборки цели `../test/*.in', требуемой для `errors'. Останов.
Code: Select all
$ sqlite3 sqlite.db
SQLite version 3.1.3
Enter ".help" for instructions
sqlite> create table memos(text, priority INTEGER);
sqlite> insert into memos values('deliver project description', 10);
sqlite> insert into memos values('lunch with Christine', 100);
sqlite> select * from memos;
deliver project description|10
lunch with Christine|100
.exit
Code: Select all
! 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<>"'")));
функция lines бъёт текст (список букв) на строки (список списков букв)cr0acker wrote:Товаришь лектор вопросы можно начать задавать?
Как работать с lines, т.е. как получить доступ к произвольной перемнной?
В какой типа читает gets?
Как сранить две строки?
Code: Select all
hopeless
>: "aa"="aa";
>> true : bool
>: "aa"="bb";
>> false : bool
Code: Select all
>: if "aa"="aa" then write "Press Ctrl-D to quit\n";
^
syntax error
во-первых, write работает только как команда первого уровня - это нельзя вызывать изнутри функций или выражений, а во-вторых if подразумевает не только then, но и else:cr0acker wrote:На счет сравнения я в принуипе так и думал, но почему тогда:Code: Select all
>: if "aa"="aa" then write "Press Ctrl-D to quit\n"; ^ syntax error
Code: Select all
>: if "aa"="aa" then 1 else 2;
>> 1 : num
>: if "aa"="bb" then 1 else 2;
>> 2 : num
length из модуля list.hopcr0acker wrote:Как узнать количество элементов списка?
Code: Select all
>: if "aa"="aa" then write "Press Ctrl-D to quit\n";
^
syntax error
Code: Select all
>: write (if "aa"="aa" then "super \n" else "bad \n");
super
Если надо не все элементы списка обработать, а скажем только со второго по пятый, то можно использовать оператор ..Mac Buster wrote:Хвостовая рекурсия.cr0acker wrote:Кстати а что там в зопе вместо циклов?
Code: Select all
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"