Book Image

Learn Red ? Fundamentals of Red

By : Ivo Balbaert
Book Image

Learn Red ? Fundamentals of Red

By: Ivo Balbaert

Overview of this book

A key problem of software development today is software bloat, where huge toolchains and development environments are needed in software coding and deployment. Red significantly reduces this bloat by offering a minimalist but complete toolchain. This is the first introductory book about it, and it will get you up and running with Red as quickly as possible. This book shows you how to write effective functions, reduce code redundancies, and improve code reuse. It will be helpful for new programmers who are starting out with Red to explore its wide and ever-growing package ecosystem and also for experienced developers who want to add Red to their skill set. The book presents the fundamentals of programming in Red and in-depth informative examples using a step-by-step approach. You will be taken through concepts and examples such as doing simple metaprogramming, functions, collections, GUI applications, and more. By the end of the book, you will be fully equipped to start your own projects in Red.
Table of Contents (13 chapters)
11
Assessments

Copying a series

Red tries to reuse series and objects in memory as much as possible, for performance reasons. This means that using variables to point to the same series is often a bad idea and is the cause of hard-to-find bugs in your code. We have already told you in the Assigning and copying section in Chapter 3, Using Words, Values, and Types, that using copy is the safest way to ensure that your variables point to different memory locations. That way, changes to one variable don't affect the other.

To appreciate this fact, examine and try to predict the output of the following code:

;-- see Chapter05/copying.red:
not-expected: [
var1: ""
append var1 "*"
print var1
]

loop 3 [do not-expected]

The do word executes the not-expected code block and append joins the var1 string with a *.

You probably expected three * lines to be printed out. But...