10 Trends Likely to Shape Enterprise Technology in 2024
The Ring programming language version 1.6 book - Part 186 of 189
1. INDEX
3D Cube and Texture
Using RingOpenGL and RingAllegro for 3D Graph-
ics, 570
Access List Items by String Index
Lists, 212
Access Objects Using Braces
Object Oriented Programming, 289
Access String Letters
Strings, 214
Accessing the class attributes from braces inside class
methods
Scope Rules, 718
Add Items
Lists, 206
addattribute()
Reflection and Meta-programming, 317
AddDays()
Date and Time, 222
Adding code to the generated code
Code Generator, 813
Adding Hyperlink to QLabel
Desktop and Mobile Development, 621
addmethod()
Reflection and Meta-programming, 317
Analog Clock
Applications developed in little hours, 6
Animate Class
Game Engine for 2D Games, 473
Animate Events
Game Engine for 2D Games, 484
Animation
Game Engine for 2D Games, 478
Animation and Functions
Game Engine for 2D Games, 479
Anonymous and Nested Functions
Functional Programming, 302
Application Class
Web Development (CGI Library), 435
Applications
How to contribute?, 142
Applications developed in little hours
Analog Clock, 6
Calculator Application, 10
FetchStockData Application, 3
Fifteen Puzzle Game 2, 4
Google API Shortener Application, 5
Innovative, 19
Introduction, 1
Practical, 20
Quotes about Ring, 1
Samples in this book, 13
Squares Puzzle Game, 8
TicTacToe Game, 7
Video-Music-Player Application, 9
Werdy Application, 12
Windows StartUp Manager Application, 11
apppath()
Stdlib Functions, 324
Arithmetic Operators
Operators, 173
Ascii()
Data Type, 230
Assert()
Eval() and Debugging, 256
Assignment Operators
Operators, 174
attributes()
Reflection and Meta-programming, 314
Better Call Command
What is new in Ring 1.2?, 121
Better Code Generator for Extensions
What is new in Ring 1.1?, 131
What is new in Ring 1.5?, 72
Better Documentation
What is new in Ring 1.1?, 131
Better Documentation Generator for Extensions
What is new in Ring 1.5?, 73
Better Functions
What is new in Ring 1.2?, 118
Better Loop|Exit Command
What is new in Ring 1.3?, 112
Better Natural Language Programming Support
What is new in Ring 1.1?, 123
Better Objects Library
1823
2. Ring Documentation, Release 1.6
What is new in Ring 1.5?, 59
Better Quality
What is new in Ring 1.2?, 121
What is new in Ring 1.5?, 81
Better Ring For Android
What is new in Ring 1.6?, 38
Better Ring Notepad
What is new in Ring 1.2?, 118
What is new in Ring 1.3?, 108
What is new in Ring 1.5?, 50
What is new in Ring 1.6?, 41
Better RingQt
What is new in Ring 1.2?, 118
What is new in Ring 1.3?, 104
What is new in Ring 1.4?, 99
What is new in Ring 1.5?, 57
What is new in Ring 1.6?, 43
Better RingREPL
What is new in Ring 1.6?, 44
Better RingVM
What is new in Ring 1.6?, 44
Better Scripts for building Ring
What is new in Ring 1.6?, 40
Better StdLib
What is new in Ring 1.3?, 112
What is new in Ring 1.4?, 97
What is new in Ring 1.5?, 53
What is new in Ring 1.6?, 44
Better WebLib
What is new in Ring 1.4?, 97
What is new in Ring 1.5?, 54
binarydigits()
Stdlib Functions, 333
Bitwise Operators
Operators, 174
BraceError() Method
Natural Language Programming, 377
BraceExprEval Method
Natural Language Programming, 376
BraceStart and BraceEnd Methods
Natural Language Programming, 375
Branching
Control Structures, 176
Control Structures - Second Style, 183
Control Structures - Third Style, 186
BreakPoint
The Trace Library and the Interactive Debugger, 792
Building From Source Code
Building using CMake, 140
Building using Fedora Linux, 136
Building using MacOS X, 138
Building using Microsoft Windows, 133
Building using Ubuntu Linux, 135
Introduction, 132
Building Games For Android
Building the project, 520
Download Requirements and Update the Android
SDK, 519
Introduction, 518
Project Folder, 519
Building RingQt Applications for Mobile
Comments about developing for Android using
RingQt, 697
Download Requirements, 695
Install Qt for Android, 695
Introduction, 694
Update the Android SDK, 695
Using Ring2EXE, 698
Building standalone console application
Distributing Ring Application using Ring2EXE, 762
Building the Cards Game for Mobile using RingQt
Distributing Ring Application using Ring2EXE, 764
Building the Form Designer for Mobile using RingQt
Distributing Ring Application using Ring2EXE, 766
Building the project
Building Games For Android, 520
Building the Weight History Application for Mobile using
RingQt
Distributing Ring Application using Ring2EXE, 765
Building using CMake
Building From Source Code, 140
Building using Fedora Linux
Building From Source Code, 136
Building using MacOS X
Building From Source Code, 138
Building using Microsoft Windows
Building From Source Code, 133
Building using Ubuntu Linux
Building From Source Code, 135
Calculator Application
Applications developed in little hours, 10
What is new in Ring 1.5?, 49
Call Functions
Functions - First Style, 193
Functions - Second Style, 197
Functions - Third Style, 201
callgc()
Low Level Functions, 770
Calling a function sharing the name with a method in the
current class
Scope Rules for Functions and Methods, 729
Can I connect to dbase/harbour database?
Frequently Asked Questions, 1802
Can Ring work on Windows XP?
Frequently Asked Questions, 1804
capitalized()
Stdlib Functions, 327
Index 1824
3. Ring Documentation, Release 1.6
cfunctions()
Reflection and Meta-programming, 307
CGI Support
Command Line Options, 757
Change Focus
Desktop and Mobile Development, 656
Change Language Keywords
Syntax Flexibility, 731
Change Language Operators
Syntax Flexibility, 732
Change the ’=’ operator to ’is’
Natural Language Programming, 373
Change the Ring Keyword ’And’
Natural Language Programming, 371
Change the Ring Operator ’+’
Natural Language Programming, 372
Change: Basic Extensions are separated from RingVM
What is new in Ring 1.4?, 92
changestring()
Stdlib Functions, 336
Char()
Data Type, 230
ChDir() Function
System Functions, 252
Check Character
Data Type, 225
Check Data Type
Data Type, 224
Check Parameters Count
Extension, 800
Check Parameters Type
Extension, 801
Classes and Objects
Object Oriented Programming, 287
Classes and their Methods to use the default events
Desktop and Mobile Development, 686
classes()
Reflection and Meta-programming, 311
classname()
Reflection and Meta-programming, 313
Clean Natural Code
Natural Language Programming, 378
Clearerr()
Files, 242
clock()
Date and Time, 220
Close Window Event
RingLibSDL, 465
ClosPerSecond()
Date and Time, 220
Code Generator
Adding code to the generated code, 813
Comments in configuration file, 815
Configuration file, 811
Configuration file for the Allegro library, 816
Configuration Files Examples, 829
Constants Type, 816
Defining Constants, 814
Determine Structure Members Types, 814
Enum and Numbers, 815
Executing code during code generation, 815
Filtering using Expressions, 815
function prototype, 811
Introduction, 810
Prefix for Functions Names, 813
Qt configuration file, 820
Register New Functions, 814
Threads Support, 818
Using configuration file that wrap C++ library, 820
Using the tool, 811
Wrap structures, 813
Wrapping C++ Classes, 819
CodeEditor Class
RingQt Classes Reference, 1739
Command Line Options
CGI Support, 757
Generate Object File, 758
Introduction, 743
No Run, 757
Performance, 757
Printing Final Intermediate Code, 752
Printing Instruction Operation Code, 757
Printing Intermediate Code, 750
Printing Rules, 746
Printing Tokens, 744
Comments about developing for Android using RingQt
Building RingQt Applications for Mobile, 697
Comments about evaluation
Control Structures - First Style, 181
Comments in configuration file
Code Generator, 815
Compact Syntax
Language Design, 30
Compiler and Virtual Machine (VM)
How to contribute?, 142
Compiler Errors
Reference, 1811
Composition
Object Oriented Programming, 290
Configuration file
Code Generator, 811
Configuration file for the Allegro library
Code Generator, 816
Configuration Files Examples
Code Generator, 829
Configure the Apache web server
Web Development (CGI Library), 387
Conflict between Class Attributes and Local Variables
Index 1825
4. Ring Documentation, Release 1.6
Scope Rules, 715
Conflict between Global Variables and Class Attributes
Frequently Asked Questions, 1790
Scope Rules, 714
Conflict between self inside braces and self in the class
region
Scope Rules, 721
Constants Type
Code Generator, 816
Constructor methods in Ring
Frequently Asked Questions, 1786
Contact the Autor
Resources, 1822
Context Menu
Desktop and Mobile Development, 603
Control Structures
Branching, 176
Looping, 187
Control Structures - First Style
Comments about evaluation, 181
Do Again Loop, 179
Exit, 179
Exit from two loops, 179
Exit/Loop inside sub functions, 180
For In Loop, 178
for in to modify lists, 178
For Loop, 177
Introduction, 175
Loop Command, 180
Looping, 177
Short-circuit evaluation, 180
Step Option, 178
Switch Statement, 176
While Loop, 177
Control Structures - Second Style
Branching, 183
Exceptions, 185
For In Loop, 185
For Loop, 184
If Statement, 183
Introduction, 182
Looping, 184
Switch Statement, 183
Control Structures - Third Style
Branching, 186
Exceptions, 189
For In Loop, 189
For Loop, 188
If Statement, 186
Introduction, 185
Switch Statement, 186
While Loop, 187
Conversion
Data Type, 229
Conversion Class
Stdlib Classes, 358
Convert between Numbers and Bytes
What is new in Ring 1.4?, 96
Convert Letters Case
Strings, 214
Cookies
Web Development (CGI Library), 399
Copy Lists
Lists, 210
Copy()
Strings, 216
Could you explain the output of the StrCmp() function?
Frequently Asked Questions, 1793
Create Database
MySQL Functions, 271
Create Executable File
Getting Started - First Style, 143
Getting Started - Second Style, 146
Getting Started - Third Style, 148
Create Lists
Lists, 206
Create Table and Insert Data
MySQL Functions, 272
Create Window
RingLibSDL, 462
Create Zip File
RingZip, 445
Creating a Class for each Window in GUI applications
Scope Rules, 720
Creating Menubar
Desktop and Mobile Development, 600
Creating more than one window
Desktop and Mobile Development, 639
Creating Reports using the WebLib and the GUILib
Desktop and Mobile Development, 691
Creating StatusBar
Desktop and Mobile Development, 605
Creating the Game Window
Game Engine for 2D Games, 473
Creating the Qt resource file using Folder2qrc
Distributing Ring Application using Ring2EXE, 768
Creating Toolbar
Desktop and Mobile Development, 604
Creating Windows Installer
Distributing Ring Application, 760
CRUD Example using MVC
Web Development (CGI Library), 421
CurrentDir() Function
System Functions, 252
Data Type
Ascii(), 230
Char(), 230
Index 1826
5. Ring Documentation, Release 1.6
Check Character, 225
Check Data Type, 224
Conversion, 229
Dec(), 230
Hex(), 230
Hex2str(), 231
Introduction, 223
IsAlNum(), 226
IsAlpha(), 226
IsCntrl(), 226
IsDigit(), 227
IsGraph(), 227
IsList(), 225
IsLower(), 227
IsNULL(), 225
IsNumber(), 224
IsPrint(), 227
IsPunct(), 228
IsSpace(), 228
IsString(), 224
IsUpper(), 228
IsXdigit(), 228
Number(), 229
Str2Hex(), 231
String(), 229
Type(), 225
Database, ModelBase & ControllerBase classes
Web Development (CGI Library), 429
DataType Class
Stdlib Classes, 357
Date and Time
AddDays(), 222
clock(), 220
ClosPerSecond(), 220
Date(), 220
DiffDays(), 222
EpochTime(), 222
Introduction, 219
Time(), 220
TimeList(), 221
Date()
Date and Time, 220
DateTime Class
Stdlib Classes, 352
dayofweek()
Stdlib Functions, 334
Debug Class
Stdlib Classes, 356
Dec()
Data Type, 230
Decimals()
Mathematical Functions, 235
Declarative Programming
Declarative programming on the top of Object-
Oriented, 367
executing code after the end of object access, 367
Introduction, 363
More Beatiful Code, 368
Objects inside lists, 364
Return object by reference, 365
Declarative programming on the top of Object-Oriented
Declarative Programming, 367
Declare parameters
Functions - First Style, 194
Functions - Second Style, 198
Functions - Third Style, 202
Decrypt()
Security and Internet Functions, 285
Deep Copy
Variables, 171
Define Declarative Languages
Language Design, 33
Define Functions
Functions - First Style, 193
Functions - Second Style, 197
Functions - Third Style, 201
Define Natural Statements
Language Design, 31
Defining Commands
Using the Natural Library, 382
Defining commands using classes
Using the Natural Library, 385
Defining Constants
Code Generator, 814
Defining Variables and Variables Access
Scope Rules, 712
Delete Item From List
Lists, 207
Demo Programs
Introduction, 256
Language Shell, 257
Main Menu, 257
The Cards Game, 680
Designed for a clear goal
Language Design, 28
Desktop and Mobile Development
Adding Hyperlink to QLabel, 621
Change Focus, 656
Classes and their Methods to use the default events,
686
Context Menu, 603
Creating Menubar, 600
Creating more than one window, 639
Creating Reports using the WebLib and the GUILib,
691
Creating StatusBar, 605
Creating Toolbar, 604
Index 1827
6. Ring Documentation, Release 1.6
Dialog Functions, 646
Display Image using QLabel, 625
Display Scaled Image using QLabel, 634
Drawing using QPainter, 636
Dynamic Objects, 660
Inheritance from GUI Classes, 652
KeyPress and Mouse Move Events, 646
Menubar and StyleSheet Example, 626
Methods to use Events with Events Filter, 689
Movable Label Example, 642
Moving Objects using the Mouse, 648
New Classes names - Index Start from 1, 691
Notepad Application, 665
Other Widgets Events, 630
Playing Sound, 640
Printing using QPrinter, 638
QLineEdit Events and QMessageBox, 628
QMessagebox Example, 643
QVideoWidget and QMediaPlayer, 622
Regular Expressions, 657
RingQt Classes and their Qt Documentation, 691
Rotate Text, 654
Simple Client and Server Example, 658
The Cards Game, 680
The Difference between Qt and RingQt, 690
The First GUI Application, 590
Using Layout, 591
Using QCheckBox, 618
Using QComboBox Class, 599
Using QDateEdit, 613
Using QDesktopWidget Class, 653
Using QDial, 614
Using QDockWidget, 606
Using QFrame, 623
Using QInputDialog Class, 644
Using qLCDNumber, 641
Using QProgressBar, 610
Using QProgressBar and Timer, 633
Using QRadioButton and QButtonGroup, 619
Using QSlider, 611
Using QSpinBox, 611
Using QTableWidget, 609
Using QTabWidget, 607
Using QTreeView and QFileSystemModel, 597
Using QTreeWidget and QTreeWidgetItem, 598
Using QWebView, 617
Using the QColorDialog Class, 640
Using the QFileDialog Class, 635
Using the QListWidget Class, 594
Using the QTextEdit Class, 593
Using the QTimer Class, 632
Weight History Application, 661
Determine Structure Members Types
Code Generator, 814
Dialog Functions
Desktop and Mobile Development, 646
DiffDays()
Date and Time, 222
Dir()
Files, 238
direxists()
Stdlib Functions, 336
Disable BreakPoints
The Trace Library and the Interactive Debugger, 792
Display Error Message
Extension, 801
Display Image
RingLibSDL, 462
Display Image using QLabel
Desktop and Mobile Development, 625
Display PNG Images
RingLibSDL, 463
Display Scaled Image using QLabel
Desktop and Mobile Development, 634
Display Transparent Images
RingLibSDL, 464
Display Warnings Option
What is new in Ring 1.2?, 121
Distributing Applications and Games for Mobile
Distributing Ring Application, 760
Distributing Applications for Microsoft Windows
Distributing Ring Application, 759
Distributing Applications for Mobile using RingQt
Distributing Ring Application using Ring2EXE, 764
Distributing Ring Application
Creating Windows Installer, 760
Distributing Applications and Games for Mobile,
760
Distributing Applications for Microsoft Windows,
759
Introduction, 758
Protecting the Source Code, 759
Using C/C++ Compiler and Linker, 760
Distributing Ring Application using Ring2EXE
Building standalone console application, 762
Building the Cards Game for Mobile using RingQt,
764
Building the Form Designer for Mobile using
RingQt, 766
Building the Weight History Application for Mobile
using RingQt, 765
Creating the Qt resource file using Folder2qrc, 768
Distributing Applications for Mobile using RingQt,
764
Distributing RingAllegro Applications, 763
Example, 761
How Ring2EXE works?, 761
Important Information about Ring2EXE, 768
Index 1828
7. Ring Documentation, Release 1.6
Introduction, 760
Options, 762
Using Ring2EXE, 761
Distributing RingAllegro Applications
Distributing Ring Application using Ring2EXE, 763
Do Again Loop
Control Structures - First Style, 179
Documentation
How to contribute?, 141
Download Requirements
Building RingQt Applications for Mobile, 695
Download Requirements and Update the Android SDK
Building Games For Android, 519
Download()
Security and Internet Functions, 286
Draw Rectangle
RingLibSDL, 463
Drawing Text
Game Engine for 2D Games, 474
Drawing using QPainter
Desktop and Mobile Development, 636
Drawing using RingOpenGL
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 524
Drawing, Animation and Input
Graphics and Game Programming, 448
Dynamic Attributes
Object Oriented Programming, 294
Dynamic Objects
Desktop and Mobile Development, 660
Dynamic Typing
Variables, 171
Editors Support
How to contribute?, 142
Embedding Ring in Ring
Embedding Ring in Ring, 794
Embedding Ring in Ring without sharing the State,
795
ring_state_setvar(), 796
Serial Execution of Programs, 795
Embedding Ring in Ring without sharing the State
Embedding Ring in Ring, 795
What is new in Ring 1.3?, 114
Embedding Ring Language in C/C++ Programs
Introduction, 807
Ring State, 808
Ring State Functions, 808
Ring State Variables, 809
Employee Application
What is new in Ring 1.6?, 37
Encourage Organization
Language Design, 30
Encrypt()
Security and Internet Functions, 284
endswith()
Stdlib Functions, 330
Entering Items
Form Designer, 710
Enum and Numbers
Code Generator, 815
Environment Errors
Reference, 1813
EpochTime()
Date and Time, 222
Stdlib Functions, 338
Equality of functions
Functional Programming, 303
Eval()
Eval() and Debugging, 254
Eval() and Debugging
Assert(), 256
Eval(), 254
Introduction, 253
Raise(), 255
Try/Carch/Done, 254
evenorodd()
Stdlib Functions, 332
Events Code
Form Designer, 706
Example
Distributing Ring Application using Ring2EXE, 761
Files, 244
Mathematical Functions, 232
Natural Language Programming, 370
Objects Library for RingQt Application, 699
RingMurmurHash Functions Reference, 843
Security and Internet Functions, 285
System Functions, 249
The Type Hints Library, 741
Example - The Trace Library
Low Level Functions, 786
Example - Using the Trace Functions
Low Level Functions, 782
Example about Sharing Names between Functions and
Methods
Scope Rules for Functions and Methods, 727
Exceptions
Control Structures - Second Style, 185
Control Structures - Third Style, 189
Execute Program Line by Line
The Trace Library and the Interactive Debugger, 791
Execute Query and Print Result
ODBC Functions, 265
executing code after the end of object access
Declarative Programming, 367
Executing code during code generation
Code Generator, 815
Index 1829
8. Ring Documentation, Release 1.6
ExeFileName() Function
System Functions, 252
ExeFolder() Function
System Functions, 252
Exit
Control Structures - First Style, 179
Exit from two loops
Control Structures - First Style, 179
Exit/Loop inside sub functions
Control Structures - First Style, 180
Extension
Check Parameters Count, 800
Check Parameters Type, 801
Display Error Message, 801
Fopen() and Fclose() Implementation, 802
Function Prototype, 802
Function Structure, 800
Get Parameters Values, 801
Introduction, 797
Module Organization, 799
MySQL_Columns() Implementation, 805
Return Value, 801
RING API - list Functions, 803
RING API - String Functions, 805
ring_ext.c, 798
ring_ext.h, 798
Shared Libraries, 806
Sin() Implementation, 802
Extensions in C/C++
How to contribute?, 142
Extract Zip File
RingZip, 445
Facebook Login
RingLibCurl, 441
factorial()
Stdlib Functions, 328
factors()
Stdlib Functions, 332
Fclose()
Files, 239
Features
Introduction, 24
Feof()
Files, 242
Ferror()
Files, 242
FetchStockData Application
Applications developed in little hours, 3
Fexists()
Files, 244
Fflush()
Files, 240
Fgetc()
Files, 243
Fgetpos()
Files, 242
Fgets()
Files, 243
fibonacci()
Stdlib Functions, 329
Fifteen Puzzle Game 2
Applications developed in little hours, 4
File Class
Stdlib Classes, 354
File Hash
Security and Internet Functions, 285
file2list()
Stdlib Functions, 330
Files
Clearerr(), 242
Dir(), 238
Example, 244
Fclose(), 239
Feof(), 242
Ferror(), 242
Fexists(), 244
Fflush(), 240
Fgetc(), 243
Fgetpos(), 242
Fgets(), 243
Fopen(), 239
Fputc(), 243
Fputs(), 243
Fread(), 244
Freopen(), 240
Fseek(), 241
Fsetpos(), 242
Ftell(), 241
Fwrite(), 244
Introduction, 236
Numbers and Bytes, 246
Perror(), 242
Read File using Read(), 238
Remove(), 239
Rename(), 239
Rewind(), 241
Tempfile(), 241
Tempname(), 241
Ungetc(), 243
Write file using Write(), 238
filter()
Stdlib Functions, 326
Filtering using Expressions
Code Generator, 815
Find SubString
Strings, 217
Find() and List of Objects
Index 1830
9. Ring Documentation, Release 1.6
Object Oriented Programming, 295
First-Class Functions
Functional Programming, 301
First-Class Lists
Lists, 211
Flappy Bird 3000 Game
Game Engine for 2D Games, 500
Fopen()
Files, 239
Fopen() and Fclose() Implementation
Extension, 802
For In Loop
Control Structures - First Style, 178
Control Structures - Second Style, 185
Control Structures - Third Style, 189
for in to modify lists
Control Structures - First Style, 178
For Loop
Control Structures - First Style, 177
Control Structures - Second Style, 184
Control Structures - Third Style, 188
Form Designer
Entering Items, 710
Events Code, 706
Introduction, 703
Keyboard Shortcuts, 709
Menubar Designer, 709
More Samples and Tests, 711
Running Forms, 706
The Designer Windows, 705
The Properties, 705
Using Layouts, 711
What is new in Ring 1.3?, 115
Window Flags, 710
Fputc()
Files, 243
Fputs()
Files, 243
Frames Per Second
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 557
Fread()
Files, 244
Freopen()
Files, 240
Frequently Asked Questions
Can I connect to dbase/harbour database?, 1802
Can Ring work on Windows XP?, 1804
Conflict between Global Variables and Class At-
tributes, 1790
Constructor methods in Ring, 1786
Could you explain the output of the StrCmp() func-
tion?, 1793
Getter and Setter Methods, 1788
Goal of including the Main function in Ring, 1784
How can I disable maximize button and resize win-
dow?, 1800
How to add Combobox and other elements to the
cells of a QTableWidget?, 1807
How to Close a window then displaying another
one?, 1799
How to create a Modal Window?, 1799
How to create an array of buttons in GUI applica-
tions?, 1798
How to extend RingQt and add more classes?, 1804
How to get the current source file path?, 1791
How to get the file size using ftell() and fseek() func-
tions?, 1791
How to insert an item to the first position in the list?,
1796
How to perform some manipulations on selected
cells in QTableWidget?, 1807
How to print keys or values only in List/Dictionary?,
1792
How to print lists that contains objects?, 1796
How to print new lines and other characters?, 1797
How to use many source code files in the project?,
1793
How to use NULL and ISNULL() function?, 1795
How to use SQLite using ODBC?, 1801
Introduction, 1776
Is Ring some sort of improvement over PHP?, 1779
List index start from 1, 1785
Philosophy behind data types in Ring, 1782
Search of global names while defining the class at-
tributes, 1789
The documentation says functional programming is
supported, but then this happens?, 1781
What about predefined parameters or optional pa-
rameters in functions?, 1791
What about the Boolean values in Ring?, 1783
What are the advantages to using Ring over C# or
Java?, 1781
What are the advantages to using Ring over Lisp or
Smalltalk?, 1778
What are the advantages to using Ring over native C
or C++?, 1779
What are the advantages to using Ring over Python
and Ruby?, 1780
What are the advantages to using Ring over Tcl and
Lua?, 1780
What happens when we create a new object?, 1787
What is the difference between Ring and Python?
And is Ring Open Source?, 1779
Where can I write a program and execute it?, 1790
Which of 3 coding styles are commonly used or rec-
ommended by the community?, 1808
Why do we need Yet Another Programming Lan-
Index 1831
10. Ring Documentation, Release 1.6
guage (YAPL)?, 1777
Why I get a strange result when printing nl with
lists?, 1792
Why I get Calling Function without definition Er-
ror?, 1803
Why Ring is largely focussed on UI creation?, 1778
Why Ring is not case-sensitive, 1785
Why Ring is weakly typed?, 1778
Why Ring uses ’See’, ’Give’, ’But’ and ’Ok’ Key-
words?, 1782
Why setClickEvent() doesn’t see the object methods
directly?, 1803
Why the ability to define your own languages Instead
of just handing over the syntax so you can parse
it using whatever code you like?, 1781
Why the Assignment operator uses Deep copy?,
1786
Why the window title bar is going outside the
screen?, 1797
Why this example use the GetChar() twice?, 1794
Why we don’t use () after the qApp class name?,
1797
Why you can specify the number of loops you want
to break out of?, 1782
Fseek()
Files, 241
Fsetpos()
Files, 242
FSize()
Stdlib Functions, 337
Ftell()
Files, 241
Function Prototype
Extension, 802
function prototype
Code Generator, 811
Function Structure
Extension, 800
Functional Programming
Anonymous and Nested Functions, 302
Equality of functions, 303
First-Class Functions, 301
Higher-order Functions, 301
Introduction, 299
Pure Functions, 300
Functions - First Style
Call Functions, 193
Declare parameters, 194
Define Functions, 193
Introduction, 192
Main Function, 194
Recursion, 196
Return Value, 195
Send Parameters, 194
Variables Scope, 195
Functions - Second Style
Call Functions, 197
Declare parameters, 198
Define Functions, 197
Introduction, 196
Main Function, 198
Recursion, 200
Return Value, 199
Send Parameters, 198
Variables Scope, 199
Functions - Third Style
Call Functions, 201
Declare parameters, 202
Define Functions, 201
Introduction, 200
Main Function, 202
Recursion, 204
Return Value, 203
Send Parameters, 202
Variables Scope, 203
functions()
Reflection and Meta-programming, 307
Fwrite()
Files, 244
Game Class
Game Engine for 2D Games, 471
Game Engine Classes
Game Engine for 2D Games, 470
Game Engine for 2D Games
Animate Class, 473
Animate Events, 484
Animation, 478
Animation and Functions, 479
Creating the Game Window, 473
Drawing Text, 474
Flappy Bird 3000 Game, 500
Game Class, 471
Game Engine Classes, 470
GameObject Class, 471
Games Layer, 470
Graphics Library Bindings, 469
Interface to graphics library, 469
Introduction, 468
Map, 486
Map Class, 473
Map Events, 487
Moving Text, 475
Object and Drawing, 489
Playing Sound, 477
Project Layers, 469
Sound Class, 473
Sprite Automatic Movement, 480
Index 1832