CloudFlare suffered a massive security issue affecting all of its customers, including Rosetta Code. All passwords not changed since February 19th 2017 have been expired, and session cookie longevity will be reduced until late March.--Michael Mol (talk) 05:15, 25 February 2017 (UTC)


From Rosetta Code
This page is a stub. It needs more information! You can help Rosetta Code by filling it in!
This programming language may be used to instruct a computer to perform a task.
Official website
Type checking: Dynamic
See Also:

Listed below are all of the tasks on Rosetta Code which have been solved using S-lang.
Your Help Needed
If you know S-lang, please write code for some of the tasks not implemented in S-lang.

S-Lang is a multi-platform programmer's library designed to allow a developer to create robust multi-platform software. It provides facilities required by interactive applications such as display/screen management, keyboard input, keymaps, and so on. The most exciting feature of the library is the slang interpreter that may be easily embedded into a program to make it extensible. While the emphasis has always been on the embedded nature of the interpreter, it may also be used in a stand-alone fashion through the use of slsh, which is part of the S-Lang distribution.

Unlike many interpreters, the S-Lang interpreter supports all of the native C integer types (signed and unsigned versions of char, short, int, long, and long long), and both single and double precision types, as well as a double precision complex type. Other data types supported by the interpreter include strings, lists, associative arrays (hashes), user-defined structures, and multi-dimensional arrays of any data-type.

The S-Lang interpreter has very strong support for array-based operations making it ideal for numerical applications. (from the official web site])

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.

sprintf(f, d..) [f=string format, d..=zero or more data items] returns a string. printf(f, d..) prints to "stdout" and returns the number of items formatted. fputs(s, fp) 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 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[edit]

Wikipedia:S-Lang(programming language)


This category has the following 3 subcategories, out of 3 total.