| Members: 210 |
| Language: English |
| Group categories:
|
| More group info » |
Snorgers CodeLICENCEYou may choose your licence as any GNU or MIT licence except for some special files which contains modified code from the Qi sources, in which the QiII licence should be applicable Macro PackageDocumentation and CodePackageBasic usage of defmacro
(defmacro macroname Code -> list-expression) DescriptionThis package introduces a defmacro sugar function that is similar to lisp defmacro But evaluates the code from the inside and out meaning that in the list delivered to the macro there is no other macro forms. To note for macro developers is that the main an advantage to have it this way is that one can safely assume that (/. X Z) and (let X Y Z) forms are the only variable binding form. This assumption may not hold if variable binding typemacros are used though. Simple OperatorsDocumentation and CodePackageDependenciesDepends on the macro package. Basic usage
(S1 ∪ S2) := union of S1 and S2 DescriptionInfix set operators fare defined as well as a chained logical expression. A drawback is that < and > will cause buggs if they are used in code. Use of all binary operators cannot be mixed, use parenthesis - almost nobody know the precedence of them! Pattern matching lambdasLicence notesfun.qi in the package containes code that is copied from QiII sources and therefore the Qi licence should hold for that file. Documentation and CodeThe main reference for the define lambda is fun.qi and a enhanced version of the define lambda is sfun.qi PackageDependenciesDepends on the macro package and the simple-operator packages in that order. Basic usageTwo basic constructs are defined, first an anonymous lambda that use pattern matching (fun A b -> Code1and an enhanced version that is basically a rewrite of qi-yacc in a more functional patern matching form and a segment matcher. (sfun A b -> Code1 DescriptionLambdas have a nice feature that they capture scoped variables. Lambdas is a part of Qi, but they are very close to the standard lambda in Lisp. Therefore it can be usefull to have an anonymous lambda that uses pattern matching as in define. the fun construct is such a creature. As a consequence of capturing variables new features have been coding into a fun construct called sfun. The features include segment pattern matching, a functional qi-yacc like feature, patching in values from the outer scope inside the matching part, quoting of symbols so that parsing of lisp constructs can be handled in a less clumsy way. IssuesQi is slightly patched, you can find it, qi::ebr in fun.qi. Using the extra features in let constructs and in match constructs can backfire if you are not careful with stateful functions. see fun1.qi. Incremental loadingLicence notesThis package containes patterns from the reader.qi file and hence needs to be under the Qi license. PackageDescriptionThis package patches the load function in qi to do true incremental loading of qi files.
|
| |||||||||||||||||||
| Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy |
| ©2009 Google |