SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
introduction to


102 - MemeScript
                           Prerequisites

                           101 - Hello Meme IDE
1




Contents
2    MemeScript Example                         21   Naming Conventions
3    Meme IDE Function Editor                   22   Defining an Address Record
4    Primitive Types                            23   Adding List of Addresses to Person
5    Declaring Integer Variables                24   Creating a Person Record
6    Declaring Decimal Variables                25   ‘Dot’ Notation
7    Declaring Boolean Variables                26   String Concatenation
8    Declaring Strings                          27   String Comparison
9    Default Initializations                    28   String Utilities
10   Pre-defined Complex Types                  29   Collections
11   IF                                         30   INSERT
12   IF/ELSE                                    31   Collections and {}
13   IF/ELSEIF/ELSE                             32   Removing from a Collection
14   WHILE                                      33   Date and Time Types
15   FOR                                        34   Date and Time Arithmetics
16   Arithmetic                                 35   Date and Time Utilities
17   Logical Operations                         36   Date Formatting
18   Dataspace                                  37   Time Formatting
19   Defining a ‘Person’ Record                 38   Other Free Tutorials
20   Adding Attributes to the ‘Person’ Record
2




MemeScript Example
   var x = 10;

   var y = 20;

   var z : Integer;

   z = x + y;

   notify(z);
3




Meme IDE Function Editor
4




Primitive Types
•	
 Integer 10, -234

•	
 Decimal 1.23

•	
 String “ABC”

•	
 Boolean true, false
5




Declaring Integer Variables
Local variables within functions


var x : Integer;
var x2 = 1;
6




Declaring Decimal Variables
var d : Decimal(2);
var d2 = 1.23;
7




Declaring Boolean Variables
var b : Boolean;
var b2 = true;
8




Declaring Strings
var s : String;
var s = “abc”;
9




Default Initializations
•	String - empty string “”
•	Integer and Decimal – 0
•	Boolean – false
10




Pre-defined Complex Types
•	 Date – day, month, year
•	 Time – hour, minute, second
•	 Duration – hour, minute, second
•	 Timestamp
11




IF
var a = 15;
if (a > 10)
{
  notify(“A is big”);
}
12




IF / ELSE
var a = 15;
if (a > 10)
{
  notify(“A is big”);
}
else
{
  notify(“A is small”);
}
13




IF / ELSEIF / ELSE
var a = 15;
if (a > 10)
{
  notify(“A   is big”);
}
elseif (a >   5)
{
  notify(“A   is medium sized”);
}
else
{
  notify(“A   is small”);
}
14




WHILE
var x = 0;
while (x < 10)
{
  x++;
  // do other things
}
15




FOR
var names : String[];
append(names, “Simon”);
append(names, “Graham”);
append(names, “Joe”);
for (name in names)
{
  notify(name);
}
16




Arithmetic
var c = 20;
f = c * (9.0 / 5.0) + 32;
notify(f);
17




Logical Operators
var x = 10;
if ((x > 10) and not (x > 20))
{
  notify(“x is middle sized”);
}
18




Dataspace
19



Defining a ‘Person’ Record
20



Adding Attributes to the ‘Person’ Record
21




Naming Conventions
Record Type Names
•	 bumpy case with initial uppercase,
     e.g. Person or EmployeeDetails

Attribute names in records
•	 bumpy case with initial lowercase
     e.g. name or firstName
22




Defining an Address Record
23




Adding List of Addresses to Person
24




Creating a Person Record
var p : Person;
var a : Address;
a.line1 = “12 High St”;
a.zip = “PA 12345”;
p.name = “Simon”;
p.tel = “1234567”;
append(p.addresses, a);
25




‘Dot’ Notation
notify(p.addresses[0].line1);

p.addresses[0].line1 = “13 High St”
26




String Concatenation

var   s1 = “The Start”
var   s2 = “The Middle”
var   s3 = “The End”
var   result = s1 + “, “ + s2 + “, “ + s3 + “. “
+ 3   + “ parts.”;


The Start, The Middle, The End. 3 parts.
27




String Comparison
var s1 = “String 1”;
var s2 = “String ONE”;
if (s1 == s2)
{
  notify(“Yes”);
}
28




String Utilities
•	 Boolean startsWith(sourceString, matchString)
•	 Boolean endsWith(sourceString, matchString)
•	 String subString(sourceString, startPos, length)
•	 Integer size(sourceString)
•	 String toLower(sourceString)
•	 String toUpper(sourceString)
•	 String trim(sourceString)
•	 String replaceAll(sourceString, matchString, replacementString)
•	 String replaceFirst(sourceString, matchString, replacementString)
•	 String replaceLast(sourceString, matchString, replacementString)
29




Collections
var people : Person[];
var names : String[];
append(names, “Simon”);
append(names, “Graham”);
30




INSERT
var people : Person[];
var names : String[];
append(names, “Simon”);
append(names, “Graham”);
insert(names, “Joe”, 0);
31




Collections and []
var people : Person[];
var fred : Person;
simon.name = “Simon”;
simon.tel = “12345”;
people.append(simon);
var graham : Person;
graham.name = “Simon”;
graham.tel = “12345”;
people.append(graham);

people.remove(simon);
32




Removing from a Collection
var people : Person[];
var simon : Person;
simon.name = “Simon”;
simon.tel = “12345”;
people.append(simon);
var graham : Person;
graham.name = “Simon”;
graham.tel = “12345”;
people.append(graham);

notify(people[1].name);
33




Date and Time Types
•	 Date - day, month, year
•	 Time - hour, minute, second
•	 Duration - hour, minute, second
•	 Timestamp
34




Date and Time Arithmetic
var t : Time;
t = timeNow();

var dt : Duration;
dt.hour = 1;
t = addTime(t, dt);
35




Date and Time Utilities
•	 dateNow()
•	 timeNow()
•	 setDate(Date, year, month, day)
•	 setTime(Time, hour, min, sec)
•	 addDays(Date, days)
•	 dayOfWeek(Date)
•	 monthOfYear(Date)
•	 formatDate(Date, formatString)
•	 formatTime(Time, formatString)
•	 formatTimestamp(Timestamp, String)
36




Date Formatting
Code      Description                                          Result
d          Day of the month without leading zero               “1”
dd         Day of the month with leading zero                  “01”
ddd        The localised name for the day of the week          “Sunday”
m          Month of the yearwithout leading zero               “1”
mm         Month of the year with leading zero                 “01”
mmm        The localised short (3 letter) name for the month   “Jan”
mmmm       The localised full name for the month               “January”
yy         The year as two digits                              “10”
yyyy       The year as four digits                             “2010”

var today : Date;
today = dateNow();
formatDate(today, “mmm d, yyyy”);
“January 1, 2011”
37




  Time Formatting
Code       Description                                    Example Result
HHH        Hour in 24 hour format with leading zero       19
HH         Hour in 24 hour format with leading zero       08
H          Hour in 12 hour format without leading zeros   8
MM         Minute with leading zero                       05
M          Minute without leading zero                    5
SS         Seconds with leading zero                      09
S          Seconds without leading zero                   9
PP         am/pm indicator                                am


  var t : Time;
  t = timeNow();
  formatTime(t, “HH:MM:SS PP”);

  “12:34:10 am”
38




Please check   www.memeapps.com for more free tutorials in the developers center
Level one:

101 - Hello World Hello Meme IDE

102 - Introduction to MemeScript Language
103 - Meme IDE Fundamentals


201 - Records and Record Types
202 - Designing Business Apps
203 - Advanced MemeScript

301 - MemeApps and Communications
302 - MemeApps advanced User Interfaces
303 - MemeApps and Persistence

Más contenido relacionado

Similar a MemeScript Language

Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Cyrille Martraire
 
Why learn new programming languages
Why learn new programming languagesWhy learn new programming languages
Why learn new programming languagesJonas Follesø
 
Slides Vba Mamb
Slides Vba MambSlides Vba Mamb
Slides Vba Mambmaretec
 
Introduction to programming - class 11
Introduction to programming - class 11Introduction to programming - class 11
Introduction to programming - class 11Paul Brebner
 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codePVS-Studio LLC
 
(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and ProtobufGuido Schmutz
 
Reducing Development Time with MongoDB vs. SQL
Reducing Development Time with MongoDB vs. SQLReducing Development Time with MongoDB vs. SQL
Reducing Development Time with MongoDB vs. SQLMongoDB
 
Well Grounded Python Coding - Revision 1 (Day 1 Handouts)
Well Grounded Python Coding - Revision 1 (Day 1 Handouts)Well Grounded Python Coding - Revision 1 (Day 1 Handouts)
Well Grounded Python Coding - Revision 1 (Day 1 Handouts)Worajedt Sitthidumrong
 
Well Grounded Python Coding - Revision 1 (Day 1 Slides)
Well Grounded Python Coding - Revision 1 (Day 1 Slides)Well Grounded Python Coding - Revision 1 (Day 1 Slides)
Well Grounded Python Coding - Revision 1 (Day 1 Slides)Worajedt Sitthidumrong
 
The Ring programming language version 1.6 book - Part 25 of 189
The Ring programming language version 1.6 book - Part 25 of 189The Ring programming language version 1.6 book - Part 25 of 189
The Ring programming language version 1.6 book - Part 25 of 189Mahmoud Samir Fayed
 
Learning to code with Python! (Microsoft Virtual Academy).pptx
Learning to code with Python! (Microsoft Virtual Academy).pptxLearning to code with Python! (Microsoft Virtual Academy).pptx
Learning to code with Python! (Microsoft Virtual Academy).pptxJoshuaJoseph70
 
Learning to code with Python! (MVA).pptx
Learning to code with Python! (MVA).pptxLearning to code with Python! (MVA).pptx
Learning to code with Python! (MVA).pptxJoshuaJoseph70
 
Instruction Set Architecture: MIPS
Instruction Set Architecture: MIPSInstruction Set Architecture: MIPS
Instruction Set Architecture: MIPSPrasenjit Dey
 
The Ring programming language version 1.5 book - Part 3 of 31
The Ring programming language version 1.5 book - Part 3 of 31The Ring programming language version 1.5 book - Part 3 of 31
The Ring programming language version 1.5 book - Part 3 of 31Mahmoud Samir Fayed
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDBMongoDB
 
Type Driven Development with TypeScript
Type Driven Development with TypeScriptType Driven Development with TypeScript
Type Driven Development with TypeScriptGarth Gilmour
 
The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212Mahmoud Samir Fayed
 

Similar a MemeScript Language (20)

Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014
 
Why learn new programming languages
Why learn new programming languagesWhy learn new programming languages
Why learn new programming languages
 
Slides Vba Mamb
Slides Vba MambSlides Vba Mamb
Slides Vba Mamb
 
P2 2017 python_strings
P2 2017 python_stringsP2 2017 python_strings
P2 2017 python_strings
 
Python
PythonPython
Python
 
Introduction to programming - class 11
Introduction to programming - class 11Introduction to programming - class 11
Introduction to programming - class 11
 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ code
 
(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf
 
Reducing Development Time with MongoDB vs. SQL
Reducing Development Time with MongoDB vs. SQLReducing Development Time with MongoDB vs. SQL
Reducing Development Time with MongoDB vs. SQL
 
Well Grounded Python Coding - Revision 1 (Day 1 Handouts)
Well Grounded Python Coding - Revision 1 (Day 1 Handouts)Well Grounded Python Coding - Revision 1 (Day 1 Handouts)
Well Grounded Python Coding - Revision 1 (Day 1 Handouts)
 
Well Grounded Python Coding - Revision 1 (Day 1 Slides)
Well Grounded Python Coding - Revision 1 (Day 1 Slides)Well Grounded Python Coding - Revision 1 (Day 1 Slides)
Well Grounded Python Coding - Revision 1 (Day 1 Slides)
 
The Ring programming language version 1.6 book - Part 25 of 189
The Ring programming language version 1.6 book - Part 25 of 189The Ring programming language version 1.6 book - Part 25 of 189
The Ring programming language version 1.6 book - Part 25 of 189
 
Learning to code with Python! (Microsoft Virtual Academy).pptx
Learning to code with Python! (Microsoft Virtual Academy).pptxLearning to code with Python! (Microsoft Virtual Academy).pptx
Learning to code with Python! (Microsoft Virtual Academy).pptx
 
Learning to code with Python! (MVA).pptx
Learning to code with Python! (MVA).pptxLearning to code with Python! (MVA).pptx
Learning to code with Python! (MVA).pptx
 
Instruction Set Architecture: MIPS
Instruction Set Architecture: MIPSInstruction Set Architecture: MIPS
Instruction Set Architecture: MIPS
 
The Ring programming language version 1.5 book - Part 3 of 31
The Ring programming language version 1.5 book - Part 3 of 31The Ring programming language version 1.5 book - Part 3 of 31
The Ring programming language version 1.5 book - Part 3 of 31
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
 
Python training for beginners
Python training for beginnersPython training for beginners
Python training for beginners
 
Type Driven Development with TypeScript
Type Driven Development with TypeScriptType Driven Development with TypeScript
Type Driven Development with TypeScript
 
The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.10 book - Part 22 of 212
 

Último

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

MemeScript Language

  • 1. introduction to 102 - MemeScript Prerequisites 101 - Hello Meme IDE
  • 2. 1 Contents 2 MemeScript Example 21 Naming Conventions 3 Meme IDE Function Editor 22 Defining an Address Record 4 Primitive Types 23 Adding List of Addresses to Person 5 Declaring Integer Variables 24 Creating a Person Record 6 Declaring Decimal Variables 25 ‘Dot’ Notation 7 Declaring Boolean Variables 26 String Concatenation 8 Declaring Strings 27 String Comparison 9 Default Initializations 28 String Utilities 10 Pre-defined Complex Types 29 Collections 11 IF 30 INSERT 12 IF/ELSE 31 Collections and {} 13 IF/ELSEIF/ELSE 32 Removing from a Collection 14 WHILE 33 Date and Time Types 15 FOR 34 Date and Time Arithmetics 16 Arithmetic 35 Date and Time Utilities 17 Logical Operations 36 Date Formatting 18 Dataspace 37 Time Formatting 19 Defining a ‘Person’ Record 38 Other Free Tutorials 20 Adding Attributes to the ‘Person’ Record
  • 3. 2 MemeScript Example var x = 10; var y = 20; var z : Integer; z = x + y; notify(z);
  • 5. 4 Primitive Types • Integer 10, -234 • Decimal 1.23 • String “ABC” • Boolean true, false
  • 6. 5 Declaring Integer Variables Local variables within functions var x : Integer; var x2 = 1;
  • 7. 6 Declaring Decimal Variables var d : Decimal(2); var d2 = 1.23;
  • 8. 7 Declaring Boolean Variables var b : Boolean; var b2 = true;
  • 9. 8 Declaring Strings var s : String; var s = “abc”;
  • 10. 9 Default Initializations • String - empty string “” • Integer and Decimal – 0 • Boolean – false
  • 11. 10 Pre-defined Complex Types • Date – day, month, year • Time – hour, minute, second • Duration – hour, minute, second • Timestamp
  • 12. 11 IF var a = 15; if (a > 10) { notify(“A is big”); }
  • 13. 12 IF / ELSE var a = 15; if (a > 10) { notify(“A is big”); } else { notify(“A is small”); }
  • 14. 13 IF / ELSEIF / ELSE var a = 15; if (a > 10) { notify(“A is big”); } elseif (a > 5) { notify(“A is medium sized”); } else { notify(“A is small”); }
  • 15. 14 WHILE var x = 0; while (x < 10) { x++; // do other things }
  • 16. 15 FOR var names : String[]; append(names, “Simon”); append(names, “Graham”); append(names, “Joe”); for (name in names) { notify(name); }
  • 17. 16 Arithmetic var c = 20; f = c * (9.0 / 5.0) + 32; notify(f);
  • 18. 17 Logical Operators var x = 10; if ((x > 10) and not (x > 20)) { notify(“x is middle sized”); }
  • 21. 20 Adding Attributes to the ‘Person’ Record
  • 22. 21 Naming Conventions Record Type Names • bumpy case with initial uppercase, e.g. Person or EmployeeDetails Attribute names in records • bumpy case with initial lowercase e.g. name or firstName
  • 24. 23 Adding List of Addresses to Person
  • 25. 24 Creating a Person Record var p : Person; var a : Address; a.line1 = “12 High St”; a.zip = “PA 12345”; p.name = “Simon”; p.tel = “1234567”; append(p.addresses, a);
  • 27. 26 String Concatenation var s1 = “The Start” var s2 = “The Middle” var s3 = “The End” var result = s1 + “, “ + s2 + “, “ + s3 + “. “ + 3 + “ parts.”; The Start, The Middle, The End. 3 parts.
  • 28. 27 String Comparison var s1 = “String 1”; var s2 = “String ONE”; if (s1 == s2) { notify(“Yes”); }
  • 29. 28 String Utilities • Boolean startsWith(sourceString, matchString) • Boolean endsWith(sourceString, matchString) • String subString(sourceString, startPos, length) • Integer size(sourceString) • String toLower(sourceString) • String toUpper(sourceString) • String trim(sourceString) • String replaceAll(sourceString, matchString, replacementString) • String replaceFirst(sourceString, matchString, replacementString) • String replaceLast(sourceString, matchString, replacementString)
  • 30. 29 Collections var people : Person[]; var names : String[]; append(names, “Simon”); append(names, “Graham”);
  • 31. 30 INSERT var people : Person[]; var names : String[]; append(names, “Simon”); append(names, “Graham”); insert(names, “Joe”, 0);
  • 32. 31 Collections and [] var people : Person[]; var fred : Person; simon.name = “Simon”; simon.tel = “12345”; people.append(simon); var graham : Person; graham.name = “Simon”; graham.tel = “12345”; people.append(graham); people.remove(simon);
  • 33. 32 Removing from a Collection var people : Person[]; var simon : Person; simon.name = “Simon”; simon.tel = “12345”; people.append(simon); var graham : Person; graham.name = “Simon”; graham.tel = “12345”; people.append(graham); notify(people[1].name);
  • 34. 33 Date and Time Types • Date - day, month, year • Time - hour, minute, second • Duration - hour, minute, second • Timestamp
  • 35. 34 Date and Time Arithmetic var t : Time; t = timeNow(); var dt : Duration; dt.hour = 1; t = addTime(t, dt);
  • 36. 35 Date and Time Utilities • dateNow() • timeNow() • setDate(Date, year, month, day) • setTime(Time, hour, min, sec) • addDays(Date, days) • dayOfWeek(Date) • monthOfYear(Date) • formatDate(Date, formatString) • formatTime(Time, formatString) • formatTimestamp(Timestamp, String)
  • 37. 36 Date Formatting Code Description Result d Day of the month without leading zero “1” dd Day of the month with leading zero “01” ddd The localised name for the day of the week “Sunday” m Month of the yearwithout leading zero “1” mm Month of the year with leading zero “01” mmm The localised short (3 letter) name for the month “Jan” mmmm The localised full name for the month “January” yy The year as two digits “10” yyyy The year as four digits “2010” var today : Date; today = dateNow(); formatDate(today, “mmm d, yyyy”); “January 1, 2011”
  • 38. 37 Time Formatting Code Description Example Result HHH Hour in 24 hour format with leading zero 19 HH Hour in 24 hour format with leading zero 08 H Hour in 12 hour format without leading zeros 8 MM Minute with leading zero 05 M Minute without leading zero 5 SS Seconds with leading zero 09 S Seconds without leading zero 9 PP am/pm indicator am var t : Time; t = timeNow(); formatTime(t, “HH:MM:SS PP”); “12:34:10 am”
  • 39. 38 Please check www.memeapps.com for more free tutorials in the developers center Level one: 101 - Hello World Hello Meme IDE 102 - Introduction to MemeScript Language 103 - Meme IDE Fundamentals 201 - Records and Record Types 202 - Designing Business Apps 203 - Advanced MemeScript 301 - MemeApps and Communications 302 - MemeApps advanced User Interfaces 303 - MemeApps and Persistence