[Seed7-users] [Upd] Beginners questions and example
Interpreter and compiler for the Seed7 programming language.
Brought to you by:
thomas_mertes
From: Arkadiy K. <ark...@ya...> - 2014-10-04 15:26:32
|
Hello Seed7 Users. Let me express my thanks to Thomas for creating such a fantastic language! Flexbility of the language is something I want to explore. Right now I am still at the beginning of mastering seed7 and using my own syntax may be next step. Please find attached a Prim's minimum spanning tree implementation as described at this link: http://algs4.cs.princeton.edu/43mst/ This is my first complete program in Seed7 and I am asking for a brief code review from anyone. Basically there are separate files for heap operations and minimum priority queue operations. This is an updated message as I am finding correct email format for the list. All mentioned attachments are available by these links: graphs.s7i http://sourceforge.net/p/seed7/mailman/attachment/1073401412422352%40web10o.yandex.ru/2/ heapfunc.s7i http://sourceforge.net/p/seed7/mailman/attachment/1073401412422352%40web10o.yandex.ru/3/ minpq.s7i http://sourceforge.net/p/seed7/mailman/attachment/1073401412422352%40web10o.yandex.ru/4/ prims.sd7 http://sourceforge.net/p/seed7/mailman/attachment/1073401412422352%40web10o.yandex.ru/6/ minpq_err.s7i http://sourceforge.net/p/seed7/mailman/attachment/1073401412422352%40web10o.yandex.ru/5/ Here are some questions. 1. When using pointers, is the syntax ^ to dereference still supported? It is mentioned in the manual. Also, if I need to create an array of structures and later use pointers to them, what is the best way to do so: create a normal array of values and then create a pointer to each element using & syntax, or create an array of pointers and use varalloc to create each element? What is the difference between varalloc and xalloc? 2. Can I use template functions to declare new structures and functions on them, such as described here? http://seed7.sourceforge.net/examples/for_decl.htm My intention was to declare a generic "new struct" using the same approach but it didn't work and the error message had "declared twice" information. 3. Why do I get the following message when using "in" parameter (probably instead of a "var") *** minpq.s7i(135):52: Variable expected in {SCT_SELECT({pq . count }) decr } found expression ({pq . count }) of type func integer decr(pq.count); 4. The manual mentions that you can implement "doMap" function without lambda expressions. http://seed7.sourceforge.net/examples/map.htm But the syntax doMap([](1, 2, 4, 6, 10, 12, 16), x, x + 1) looks very much like a lambda expression. Could you give more examples on programming using "map", "reduce", "filter", etc? Is it possible to apply functions to other data types in addition to arrays? 5. Attached file minpq_err.s7i causes interpreter to emit segmentation fault when included from any other file. I think it is because same identifier "item" is used for both a variable name and type name. Instructions: Place all attached files into seed7/prg or your programs folder. Copy the text in the P.S. into graph1.txt Run "./s7 prims.sd7 graph1.txt" The cost of MST and some trace information should be printed. Graph file(s) have the format [number_of_nodes] [number_of_edges] [one_node_of_edge_1] [other_node_of_edge_1] [edge_1_cost] [one_node_of_edge_2] [other_node_of_edge_2] [edge_2_cost] ... For example, the third line of the file is "2 3 -8874", indicating that there is an edge connecting vertex #2 and vertex #3 that has cost -8874. Thank you, Arkadiy Kuleshov P.S. Not sure if this list processes attachments correctly ===== Begin graph1.txt ====== 6 7 1 2 2474 2 4 -246 4 3 640 4 5 2088 3 6 4586 6 5 3966 5 1 -3824 ===== End graph1.txt ======= |