Category:S-lang: Difference between revisions

m
no edit summary
(Cut-and-paste move from S-lang.)
 
mNo edit summary
 
(5 intermediate revisions by the same user not shown)
Line 9:
 
The S-Lang interpreter has very strong support for array-based operations making it ideal for numerical applications. (from [http://www.jedsoft.org/slang/ the official web site]])
 
<hr>
Task Output Notes:
 
For simplicity, many of the S-Lang tasks use the print()
function. This is not part of S-Lang per se, but is normally
included in the S-Lang shell "slsh". If it is missing, or you're
using some other S-Lang environment, options include C-like fputs(),
sprintf() and printf(). Their format and parameters work about
like you'd expect in a C-inspired interpreted language.
 
<code>sprintf(f, d..)</code> [f=string format, d..=zero or more data items]
returns a string. <code>printf(f, d..)</code> prints to "stdout" and returns
the number of items formatted. <code>fputs(s, fp)</code> prints string s to the
file-pointer fp and returns the string length or -1 on error. Remember S-Lang is a "stack
language", so even if you don't care about the return value, your code
should "eat" it:
 
() = printf("S-Lang: %d tasks and counting!\n", 23);
 
() = fputs("the quality of mercy is not strnen\n", stdout);
You can approximate print() with the following; NOTE the capital-S, which implicitly calls
the string() function to convert-or-describe non-strings as strings:
 
define print(foo) { () = printf("%S\n", foo); }
S-Lang is the extension language for the lightweight Emacs-like
[http://www.jedsoft.org/jed/ programmer's editor Jed]. There, the
output functions include:
 
insert(s) write string s into current buffer
vinsert(f,d..) insert(sprintf(f, d..)) ["variable"] equivalent
message(s) write string s into "mini-buffer"
vmessage(f,d..) message(sprintf(f, d..)) equivalent
error(s) like message(), but in error-color, then cancel cmd
verror(f, d..) error(sprintf(f, d..)) equivalent
 
== See Also ==
Anonymous user