Category:Wren

Revision as of 11:03, 21 April 2023 by PureFox (talk | contribs) (Now using internal links to modules and added a note about importing them.)
Language
Wren
This programming language may be used to instruct a computer to perform a task.
Official website
Execution method: Interpreted
Garbage collected: Yes
Type safety: Safe
Type strength: Strong
Type expression: Implicit
Type checking: Dynamic
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using Wren.


Wren is a lightweight, object-oriented programming language designed to be an easily-embeddable scripting language.

It is under development on GitHub and is fully documented here.

The CLI tool (Wren CLI) has its own repository and is the main focus of examples written for RC. The latest version 0.4.0 is available as a pre-built standalone executable for 64-bit Linux, MacOS and Windows and can be downloaded from here.

Following the migration to Miraheze, RC now uses Pygments (rather than GeSHi) for syntax highlighting and I have written a lexer for Wren which is included in version 2.14.0. However, at the time of writing (January 2023), RC is still using version 2.11.2 and it is not known when this will be updated to the latest version.

In the meantime 'ecmascript', which we currently use for the 'lang' attribute, is supported by virtue of a GeSHi mapping to the 'javascript' lexer and highlights all Wren 0.4.0 keywords except: is, construct and foreign. I suggest we continue to use that until the Wren lexer is available after which we can use the latter for new tasks and when updating existing tasks. A major effort would be needed to update all existing tasks straightaway given that there are almost 1,600 of them as at January 2023.

As a language mainly designed for embedding, Wren's standard library is (of necessity) quite small and I have therefore decided to create some additional modules to assist with writing Rosetta Code tasks so the same code does not have to be written or copy/pasted time and time again thereby bloating a task's script code unnecessarily. The ones written so far are listed below:

No. Module name No. Module name
1 fmt 2 str
3 sort 4 math
5 trait 6 seq
7 date 8 rat
9 pattern 10 big
11 upc 12 matrix
13 set 14 llist
15 queue 16 complex
17 dynamic 18 ioutil
19 long 20 crypto
21 sound 22 polygon
23 srandom 24 lsystem
25 turtle 26 ellipse
27 check 28 array
29 gmp 30 ecm
31 sql 32 event
33 i64 34 perm
35 linear 36 regex
37 maputil 38 plot
39 debug 40 table
41 iterate 42 money
43 vector


To use a class or classes from a module (say fmt), you need to import them into your script with Wren code such as the following. To use more than one class separate their names with commas:

import "./fmt" for Conv, Fmt

These modules are subject to the same license as any other code submitted to Rosetta Code though contributors' user pages should be checked to see whether more permissive terms are available. If anyone wishes to add further modules, please do so using a similar model and append them to the list.

Please note that when creating a category for a new module its name should be prefixed with 'Wren-' as in 'Wren-fmt' and the library header for a task which uses the module should therefore use this name. Modules will normally have generic names and this convention allows Rosetta Code users to easily distinguish Wren modules from similarly named modules/libraries written for other languages.

There are also a number of third-party modules available for Wren of which the following have been used to write solutions for Rosetta Code tasks:

No. Module name No. Module name
1 DOME 2 Raylib-wren
3 SpiderWren 4 Wren-assert
5 Wren-json 6 Wren-test
7 WrenGo 8 Wren-xsequence


For further information and licensing requirements, please consult their individual pages.

Todo

Subcategories

This category has only the following subcategory.

@

Pages in category "Wren"

The following 200 pages are in this category, out of 1,674 total.

(previous page) (next page)

A

(previous page) (next page)