Category talk:EasyLang

From Rosetta Code

Here are some common code snippets for implementing tasks in EasyLang.

Associative arrays

The syntax for an associative arrays in EasyLang should look like this:

associative$[][] = [ [ 1 "associative" ] [ 2 "arrays" ] ]

Indexing associative arrays

For associative number arrays:

proc indexAssoc index . array[][] item .
   for i = 1 to len array[][]
      if array[i][1] = index
         item = array[i][2]
         break 2
      .
   .
   item = number "nan"
.

For associative string arrays:

proc indexStrAssoc index$ . array$[][] item$ .
   for i = 1 to len array$[][]
      if array$[i][1] = index$
         item$ = array$[i][2]
         break 2
      .
   .
   item$ = ""
.

Case conversion

These functions only work with ASCII characters.

Lowercase

func toLowercase string$ . result$ .
   for i = 1 to len string$
      code = strcode substr string$ i 1
      if code >= 65 and code <= 90
         code += 32
      .
      result$ &= strchar code
   .
.

Uppercase

func toUppercase string$ . result$ .
   for i = 1 to len string$
      code = strcode substr string$ i 1
      if code >= 97 and code <= 122
         code -= 32
      .
      result$ &= strchar code
   .
.

Find in array

This function is for number arrays:

func findInArray array[] item . index .
   for i = 1 to len array[]
      if array[i] = item
         index = i
         break 2
      .
   .
   index = 0
.

This function is for string arrays:

func findInStrArray array$[] item$ . index .
   for i = 1 to len array$[]
      if array$[i] = item$
         index = i
         break 2
      .
   .
   index = 0
.

Sum and product of arrays

func sum array[] . sum .
   for item in array[]
      sum += item
   .
.
func product array[] . product .
   product = 1
   for item in array[]
      product *= item
   .
.