SlideShare a Scribd company logo
What can Perl learn from Rebol ?
No Rebol Course
some hobby philosophy
Perl Philosophy


   TIMTOWTDI

 simple and possible

  context sensitive
Philosophy


  TIMTOWTDI

simple and possible

 context sensitive
Quote


    Take a dash of PERL, mix with the cross
  platform compatibilty of a Java, and make it
extremely easy for beginners to start coding, and
            you get the general idea.
A Hobby Philosopher
„Real“ Philosopher
Carl Sassenrath
Carl Sassenrath


- Apple, HP and Commodore
Carl Sassenrath


       - Apple, HP and Commodore

- Pantaray, American Multimedia, Videostream
Carl Sassenrath


       - Apple, HP and Commodore

- Pantaray, American Multimedia, Videostream

          - REBOL Technologies
Carl Sassenrath

    - Amiga OS, IOS, VisCorp ED

              - CDTV

- Amiga Logo, Next Gen. Forth, Rebol
- Distribution
- Browser
Left Click : Start Rebol App
Left Click : Start Rebol App
Rebol App
Rebol App
Rebol App
Rebol App
- Browser
Right Click : Get Meta Data
Rebol Editor
- Browser
Rebol Shell
Carl Sassenrath

    - Amiga OS, IOS, VisCorp ED

              - CDTV

- Amiga Logo, Next Gen. Forth, Rebol
Carl Sassenrath

    - Amiga OS, IOS, VisCorp ED

              - CDTV

- Amiga Logo, Next Gen. Forth, Rebol
What we can learn from Rebol?
●   Lisp, Forth, Logo and Self
●   Lisp, Forth, Logo and Self

●   Lightweight Distributed Computing
●   Lisp, Forth, Logo and Self

●   Lightweight Distributed Computing

●   programming-in-the-small (PITS)
PITS:

~ 800kB binary
1.8 MB for distribution

      Libs
      Tools
      Samples
      Docs
      Links
PITS:

     Remote Editor: 53
Daytime Server Deamon: 61
   bmp2png Converter
  TCP Port Scanner: 98
  Simple Clock App: 106
 Minimal Email Client: 130
Simple Picture Viewer: 132
PITS:

     Remote Editor: 53
Daytime Server Deamon: 61
   bmp2png Converter
  TCP Port Scanner: 98
  Simple Clock App: 106
 Minimal Email Client: 130
Simple Picture Viewer: 132
PITS:


view layout [
  f: field btn"Edit"[editor to-url f/text]
]
●   Lisp, Forth, Logo and Self

●   Lightweight Distributed Computing

●   programming-in-the-small (PITS)
●   Lisp, Forth, Logo and Self

●   Lightweight Distributed Computing

     ●   fighting software complexety
●   Lisp, Forth, Logo and Self

●   Lightweight Distributed Computing

     ●   fighting software complexety
What we can learn from Rebol?
Silent Scream: Rebel with a cause
Relative Expression-Based Object Language
Relative Expression-Based Object Language




        eval that like REBOL does:

              back to front
Relative Expression-Based Object Language




       the obvious, don't argue with that
Relative Expression-Based Object Language




             sounds like OOP ?
Relative Expression-Based Object Language



         ●   no OOP like Ruby or Perl 6
Relative Expression-Based Object Language



           ●   no OOP like Ruby or Perl 6

       ●   Object means here just „thing“
Relative Expression-Based Object Language




       That brings no meaning anyway :)

     There are same principles it's based on
Relative Expression-Based Object Language




      Sounds like a functional language ?
Relative Expression-Based Object Language




        (not pure) functional (since 2.0)
Relative Expression-Based Object Language
Relative Expression-Based Object Language


          ●   Thats's the main message
Relative Expression-Based Object Language


            ●   Thats's the main message

       ●   That's how Rebol syntax works
Relative Expression-Based Object Language


              ●   Thats's the main message

         ●   That's how Rebol syntax works

     ●   In Perl we call that context sensitive
Relative Expression-Based Object Language




      read http://www.perl.org/learn.html

                read %info.txt
Rebol                         Perl 5


read http://www.perl.org/learn.html
          use LWP::Simple;
          get("http://www.perl.org/learn.html");

text: read %info.txt
           use File::Slurp;
           my $text = slurp( 'info.txt' ) ;
Rebol                         Perl 6


 read http://www.perl.org/learn.html
            use HTTP::Client;
HTTP::Client.new.get("http://www.perl.org/learn.html");

text: read %info.txt
           my $text = slurp( 'info.txt' ) ;
welcome to the strange land
shock therapy
, forget all you know


            no variables
             no hashes
no precedence table (2 + 3 * 2 == 10)
             no builtins
          no Subroutinen
         sometimes scopes
   no name spaces (befor Rebol 3)
         no Regex (parse)
All is gone?
You have to know 4 concepts
4 Terms
     words:

 data types:


     series:

refinements:
4 Terms
     words:    typeless data container

 data types:


     series:

refinements:
4 Terms
     words:    variables, routines, buildins

 data types:


     series:

refinements:
4 Terms
     words:     variables, routines, buildins

 data types: integer, string, char, tuple, pair, block,


     series:

refinements:
4 Terms
      words:     variables, routines, buildins

  data types: integer, string, char, tuple, pair, block,
money, file, url, email, tag, binary, date, time, issue

      series:

refinements:
4 Terms
      words:     variables, routines, buildins

  data types: integer, string, char, tuple, pair, block,
money, file, url, email, tag, binary, date, time, issue

      series:

refinements:
4 Terms
      words:     variables, routines, buildins

  data types: integer, string, char, tuple, pair, block,
money, file, url, email, tag, binary, date, time, issue

      series:       lists, hashes, code

refinements:
4 Terms
      words:     variables, routines, buildins

  data types: integer, string, char, tuple, pair, block,
money, file, url, email, tag, binary, date, time, issue

      series:       lists, hashes, code

refinements:       (@ / %) slices / return value
Perl               Rebol
    #         =>      ;
   {}         =>     []
  $var =      =>    var:
  $var        =>   :var
eval $var     =>    var
 $var[3]      =>    var/3
$var{'sub'}   =>    var/sub
sub()         =>    sub
sub($p,$m)    =>    sub p m
Perl   Rebol


$a++   a: a + 1
Perl                Rebol


$a = 30 * 3.1415 / 180
sin($a) / cos($a)      tangent 30

sin($a) / cos($a)      tangent/radians 30

use Math::Trig;
tan(deg2rad(30));
Perl 6             Rebol

          loop     =>    forever
all, any none @a   =>   all, any []
         prompt    =>      ask
          slurp    =>      read

         no break in switch
         Pair als nativer Typ
    grammars, heavy usage of MMD
Meta Data

  REBOL [
    Title:
    Date:
    Version:
     ...
  ]
Meta Data

  File: Author: Email: Web: Rights: Requires:

Purpose: { },    Comment: {       },   Notes: {   }

 History: [0.1.1 12-Oct-2008 "add to ... path"

                 Library: [ ...
DSL for GUI

  view layout [
       text :rise_time
      button "Quit" #"q" [quit]
  ]
in Perl
use Tkx;

Tkx::button(".b",
    -text => "Hello, world",
    -command => sub { Tkx::destroy(".") },
);

Tkx::pack(".b");

Tkx::MainLoop();
in Perl
use Prima qw(Application Button);

New Prima::MainWindow(
     text => "Hello, world",
     size => [ 200, 200] ,
)-> insert( Button =>
     centered => 1,
     text => "Hello, world",
     onClick => sub { $::application->close } ,
);

run Prima;
RebGUI

view layout [
     text :rise_time
    button "Quit" #"q" [quit]
]
DSL for Regex

    expr: [term ["+" | "-"] expr | term]
   term: [factor ["*" | "/"] term | factor]
  factor: [primary "**" factor | primary]
primary: [some digit | "(" expr ")"]
    digit: charset "0123456789"

  probe parse "1 + 2 * ( 3 - 2 ) / 4" expr
  == true
DSL for Regex

parse read
 http://www.gaisma.com/en/location/halle.html
 [
  thru <td class="sunshine"><i>
  copy rise_time
  to </i>
 ]
Functional DSL

     does

     func

    function
DSL for OOP



    make
Rebol 3

  Open Source

     Unicode

  Debug Hooks

Better GUI Objects
Ideas

Io::All

Perlapi

Modules

 Prima

More Related Content

What's hot (20)

PPT
Programming in Computational Biology
AtreyiB
 
PPTX
Unit 1-introduction to perl
sana mateen
 
ODP
Introduction to Modern Perl
Dave Cross
 
PDF
Spl in the wild
Elizabeth Smith
 
PDF
Power of Puppet 4
Martin Alfke
 
PPT
Hacking with hhvm
Elizabeth Smith
 
PPT
Perl Basics with Examples
Nithin Kumar Singani
 
PDF
Yapc::NA::2009 - Command Line Perl
Bruce Gray
 
PDF
PyCon 2013 : Scripting to PyPi to GitHub and More
Matt Harrison
 
PDF
Introduction to source{d} Engine and source{d} Lookout
source{d}
 
KEY
Your Own Metric System
Erin Dees
 
PDF
Happy Go Programming Part 1
Lin Yo-An
 
PDF
SPL to the Rescue - Tek 09
Elizabeth Smith
 
PDF
Why Python (for Statisticians)
Matt Harrison
 
PDF
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
Puppet
 
PDF
Writing and using php streams and sockets tek11
Elizabeth Smith
 
PDF
Thnad's Revenge
Erin Dees
 
ODP
PHP Web Programming
Muthuselvam RS
 
PPTX
Large scale nlp using python's nltk on azure
cloudbeatsch
 
PPT
Unix command-line tools
Eric Wilson
 
Programming in Computational Biology
AtreyiB
 
Unit 1-introduction to perl
sana mateen
 
Introduction to Modern Perl
Dave Cross
 
Spl in the wild
Elizabeth Smith
 
Power of Puppet 4
Martin Alfke
 
Hacking with hhvm
Elizabeth Smith
 
Perl Basics with Examples
Nithin Kumar Singani
 
Yapc::NA::2009 - Command Line Perl
Bruce Gray
 
PyCon 2013 : Scripting to PyPi to GitHub and More
Matt Harrison
 
Introduction to source{d} Engine and source{d} Lookout
source{d}
 
Your Own Metric System
Erin Dees
 
Happy Go Programming Part 1
Lin Yo-An
 
SPL to the Rescue - Tek 09
Elizabeth Smith
 
Why Python (for Statisticians)
Matt Harrison
 
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
Puppet
 
Writing and using php streams and sockets tek11
Elizabeth Smith
 
Thnad's Revenge
Erin Dees
 
PHP Web Programming
Muthuselvam RS
 
Large scale nlp using python's nltk on azure
cloudbeatsch
 
Unix command-line tools
Eric Wilson
 

Similar to What we can learn from Rebol? (20)

PDF
Scripting3
Nao Dara
 
PDF
newperl5
tutorialsruby
 
PDF
newperl5
tutorialsruby
 
PDF
Unit VI
Bhavsingh Maloth
 
PPT
Perl Development (Sample Courseware)
Garth Gilmour
 
ODP
Glance rebol
crazyaxe
 
PDF
PerlIntro
tutorialsruby
 
PDF
PerlIntro
tutorialsruby
 
PDF
Perl intro
Swapnesh Singh
 
PDF
Learning Perl 6
brian d foy
 
PPTX
Perl slid
pacatarpit
 
PDF
Marc’s (bio)perl course
Marc Logghe
 
ODP
Add Perl to Your Toolbelt
daoswald
 
PPT
Bioinformatica 29-09-2011-p1-introduction
Prof. Wim Van Criekinge
 
PDF
Short Introduction To "perl -d"
Workhorse Computing
 
KEY
Good Evils In Perl (Yapc Asia)
Kang-min Liu
 
PDF
Introducing perl6
Nuno Carvalho
 
PPTX
Bioinformatics v2014 wim_vancriekinge
Prof. Wim Van Criekinge
 
PPT
Perl Intro 4 Debugger
Shaun Griffith
 
PDF
Why Perl, when you can use bash+awk+sed? :P
Luciano Rocha
 
Scripting3
Nao Dara
 
newperl5
tutorialsruby
 
newperl5
tutorialsruby
 
Perl Development (Sample Courseware)
Garth Gilmour
 
Glance rebol
crazyaxe
 
PerlIntro
tutorialsruby
 
PerlIntro
tutorialsruby
 
Perl intro
Swapnesh Singh
 
Learning Perl 6
brian d foy
 
Perl slid
pacatarpit
 
Marc’s (bio)perl course
Marc Logghe
 
Add Perl to Your Toolbelt
daoswald
 
Bioinformatica 29-09-2011-p1-introduction
Prof. Wim Van Criekinge
 
Short Introduction To "perl -d"
Workhorse Computing
 
Good Evils In Perl (Yapc Asia)
Kang-min Liu
 
Introducing perl6
Nuno Carvalho
 
Bioinformatics v2014 wim_vancriekinge
Prof. Wim Van Criekinge
 
Perl Intro 4 Debugger
Shaun Griffith
 
Why Perl, when you can use bash+awk+sed? :P
Luciano Rocha
 
Ad

More from lichtkind (20)

PDF
Perl 5.20: Feature, Kultur, Module, Werkzeuge
lichtkind
 
PDF
Perl 6 in Context
lichtkind
 
PDF
Wx::Perl::Smart
lichtkind
 
PDF
P6kontext2014
lichtkind
 
PDF
Complete Programming
lichtkind
 
PDF
P6 OO vs Moose (&Moo)
lichtkind
 
PDF
Perl 5 Quiz Chemnitz Edition
lichtkind
 
PDF
P6oo
lichtkind
 
PDF
Writing Perl 6 Rx
lichtkind
 
PDF
Wundertüte Perl
lichtkind
 
PDF
Perl 6 Regex und Grammars
lichtkind
 
ODP
Perl 6 Datastructures
lichtkind
 
ODP
Perl 6 Datenstrukturen
lichtkind
 
PDF
Document Driven Development
lichtkind
 
PDF
Modern wx perl
lichtkind
 
PDF
Bettereditors
lichtkind
 
PDF
Hgit
lichtkind
 
PDF
Neuperl6
lichtkind
 
PDF
Perl Testing
lichtkind
 
PDF
Perl in der Wiki
lichtkind
 
Perl 5.20: Feature, Kultur, Module, Werkzeuge
lichtkind
 
Perl 6 in Context
lichtkind
 
Wx::Perl::Smart
lichtkind
 
P6kontext2014
lichtkind
 
Complete Programming
lichtkind
 
P6 OO vs Moose (&Moo)
lichtkind
 
Perl 5 Quiz Chemnitz Edition
lichtkind
 
P6oo
lichtkind
 
Writing Perl 6 Rx
lichtkind
 
Wundertüte Perl
lichtkind
 
Perl 6 Regex und Grammars
lichtkind
 
Perl 6 Datastructures
lichtkind
 
Perl 6 Datenstrukturen
lichtkind
 
Document Driven Development
lichtkind
 
Modern wx perl
lichtkind
 
Bettereditors
lichtkind
 
Hgit
lichtkind
 
Neuperl6
lichtkind
 
Perl Testing
lichtkind
 
Perl in der Wiki
lichtkind
 
Ad

Recently uploaded (20)

PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Python basic programing language for automation
DanialHabibi2
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 

What we can learn from Rebol?

  • 1. What can Perl learn from Rebol ?
  • 4. Perl Philosophy TIMTOWTDI simple and possible context sensitive
  • 5. Philosophy TIMTOWTDI simple and possible context sensitive
  • 6. Quote Take a dash of PERL, mix with the cross platform compatibilty of a Java, and make it extremely easy for beginners to start coding, and you get the general idea.
  • 10. Carl Sassenrath - Apple, HP and Commodore
  • 11. Carl Sassenrath - Apple, HP and Commodore - Pantaray, American Multimedia, Videostream
  • 12. Carl Sassenrath - Apple, HP and Commodore - Pantaray, American Multimedia, Videostream - REBOL Technologies
  • 13. Carl Sassenrath - Amiga OS, IOS, VisCorp ED - CDTV - Amiga Logo, Next Gen. Forth, Rebol
  • 16. Left Click : Start Rebol App
  • 17. Left Click : Start Rebol App
  • 23. Right Click : Get Meta Data
  • 27. Carl Sassenrath - Amiga OS, IOS, VisCorp ED - CDTV - Amiga Logo, Next Gen. Forth, Rebol
  • 28. Carl Sassenrath - Amiga OS, IOS, VisCorp ED - CDTV - Amiga Logo, Next Gen. Forth, Rebol
  • 30. Lisp, Forth, Logo and Self
  • 31. Lisp, Forth, Logo and Self ● Lightweight Distributed Computing
  • 32. Lisp, Forth, Logo and Self ● Lightweight Distributed Computing ● programming-in-the-small (PITS)
  • 33. PITS: ~ 800kB binary 1.8 MB for distribution Libs Tools Samples Docs Links
  • 34. PITS: Remote Editor: 53 Daytime Server Deamon: 61 bmp2png Converter TCP Port Scanner: 98 Simple Clock App: 106 Minimal Email Client: 130 Simple Picture Viewer: 132
  • 35. PITS: Remote Editor: 53 Daytime Server Deamon: 61 bmp2png Converter TCP Port Scanner: 98 Simple Clock App: 106 Minimal Email Client: 130 Simple Picture Viewer: 132
  • 36. PITS: view layout [ f: field btn"Edit"[editor to-url f/text] ]
  • 37. Lisp, Forth, Logo and Self ● Lightweight Distributed Computing ● programming-in-the-small (PITS)
  • 38. Lisp, Forth, Logo and Self ● Lightweight Distributed Computing ● fighting software complexety
  • 39. Lisp, Forth, Logo and Self ● Lightweight Distributed Computing ● fighting software complexety
  • 41. Silent Scream: Rebel with a cause
  • 43. Relative Expression-Based Object Language eval that like REBOL does: back to front
  • 44. Relative Expression-Based Object Language the obvious, don't argue with that
  • 45. Relative Expression-Based Object Language sounds like OOP ?
  • 46. Relative Expression-Based Object Language ● no OOP like Ruby or Perl 6
  • 47. Relative Expression-Based Object Language ● no OOP like Ruby or Perl 6 ● Object means here just „thing“
  • 48. Relative Expression-Based Object Language That brings no meaning anyway :) There are same principles it's based on
  • 49. Relative Expression-Based Object Language Sounds like a functional language ?
  • 50. Relative Expression-Based Object Language (not pure) functional (since 2.0)
  • 52. Relative Expression-Based Object Language ● Thats's the main message
  • 53. Relative Expression-Based Object Language ● Thats's the main message ● That's how Rebol syntax works
  • 54. Relative Expression-Based Object Language ● Thats's the main message ● That's how Rebol syntax works ● In Perl we call that context sensitive
  • 55. Relative Expression-Based Object Language read http://www.perl.org/learn.html read %info.txt
  • 56. Rebol Perl 5 read http://www.perl.org/learn.html use LWP::Simple; get("http://www.perl.org/learn.html"); text: read %info.txt use File::Slurp; my $text = slurp( 'info.txt' ) ;
  • 57. Rebol Perl 6 read http://www.perl.org/learn.html use HTTP::Client; HTTP::Client.new.get("http://www.perl.org/learn.html"); text: read %info.txt my $text = slurp( 'info.txt' ) ;
  • 58. welcome to the strange land
  • 60. , forget all you know no variables no hashes no precedence table (2 + 3 * 2 == 10) no builtins no Subroutinen sometimes scopes no name spaces (befor Rebol 3) no Regex (parse)
  • 62. You have to know 4 concepts
  • 63. 4 Terms words: data types: series: refinements:
  • 64. 4 Terms words: typeless data container data types: series: refinements:
  • 65. 4 Terms words: variables, routines, buildins data types: series: refinements:
  • 66. 4 Terms words: variables, routines, buildins data types: integer, string, char, tuple, pair, block, series: refinements:
  • 67. 4 Terms words: variables, routines, buildins data types: integer, string, char, tuple, pair, block, money, file, url, email, tag, binary, date, time, issue series: refinements:
  • 68. 4 Terms words: variables, routines, buildins data types: integer, string, char, tuple, pair, block, money, file, url, email, tag, binary, date, time, issue series: refinements:
  • 69. 4 Terms words: variables, routines, buildins data types: integer, string, char, tuple, pair, block, money, file, url, email, tag, binary, date, time, issue series: lists, hashes, code refinements:
  • 70. 4 Terms words: variables, routines, buildins data types: integer, string, char, tuple, pair, block, money, file, url, email, tag, binary, date, time, issue series: lists, hashes, code refinements: (@ / %) slices / return value
  • 71. Perl Rebol # => ; {} => [] $var = => var: $var => :var eval $var => var $var[3] => var/3 $var{'sub'} => var/sub sub() => sub sub($p,$m) => sub p m
  • 72. Perl Rebol $a++ a: a + 1
  • 73. Perl Rebol $a = 30 * 3.1415 / 180 sin($a) / cos($a) tangent 30 sin($a) / cos($a) tangent/radians 30 use Math::Trig; tan(deg2rad(30));
  • 74. Perl 6 Rebol loop => forever all, any none @a => all, any [] prompt => ask slurp => read no break in switch Pair als nativer Typ grammars, heavy usage of MMD
  • 75. Meta Data REBOL [ Title: Date: Version: ... ]
  • 76. Meta Data File: Author: Email: Web: Rights: Requires: Purpose: { }, Comment: { }, Notes: { } History: [0.1.1 12-Oct-2008 "add to ... path" Library: [ ...
  • 77. DSL for GUI view layout [ text :rise_time button "Quit" #"q" [quit] ]
  • 78. in Perl use Tkx; Tkx::button(".b", -text => "Hello, world", -command => sub { Tkx::destroy(".") }, ); Tkx::pack(".b"); Tkx::MainLoop();
  • 79. in Perl use Prima qw(Application Button); New Prima::MainWindow( text => "Hello, world", size => [ 200, 200] , )-> insert( Button => centered => 1, text => "Hello, world", onClick => sub { $::application->close } , ); run Prima;
  • 80. RebGUI view layout [ text :rise_time button "Quit" #"q" [quit] ]
  • 81. DSL for Regex expr: [term ["+" | "-"] expr | term] term: [factor ["*" | "/"] term | factor] factor: [primary "**" factor | primary] primary: [some digit | "(" expr ")"] digit: charset "0123456789" probe parse "1 + 2 * ( 3 - 2 ) / 4" expr == true
  • 82. DSL for Regex parse read http://www.gaisma.com/en/location/halle.html [ thru <td class="sunshine"><i> copy rise_time to </i> ]
  • 83. Functional DSL does func function
  • 84. DSL for OOP make
  • 85. Rebol 3 Open Source Unicode Debug Hooks Better GUI Objects