-
Notifications
You must be signed in to change notification settings - Fork 6
/
intro_part_2.tex
89 lines (74 loc) · 3.41 KB
/
intro_part_2.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
% intro_part_2.tex -- Introduction to second part
%
% \chapter{Introduction to the Second part of this book}
Now that you have reached the end of the first part
of this book, you should non longer be a pure beginner.
By now, you should be able to go through the official
Raku documentation (\url{https://docs.Raku.org})
and find your way.
There are many more things to say about programming.
The next three chapters will be devoted to more
advanced concepts and new programming paradigms, including:
\begin{description}
\item[Object-oriented programming] We will describe how
we can construct our own types and methods, which
is a way to extend the language.
\item[Using grammars] This is a form of declarative
programming in which you define axioms and rules
and derive knowledge from these; grammars are a
very powerful way to analyze textual content and
are used to transform program source code into
executable statements.
\item[Functional programming] This is yet another programming
paradigm in which computation is expressed as the
evaluation of mathematical functions.
\end{description}
Each of these chapters probably deserves a full
book in its own right (and might have one some day),
but we hope to tell you enough about them to get you
going. In my opinion, every programmer should know
about these powerful concepts in order to be able
to select the best way to solve a given problem.
Raku is a multiparadigm language, so we can
really cover these topics in terms of the Raku
language. A number of subjects that we have
introduced in previous chapters should lead you
easily into these new ideas, and this is the
reason why I think it is possible to properly cover
them with just one chapter for each of these subjects.
There will be far fewer exercises in the second part,
because we expect you by now to be able to think up
your own exercises and make your own experiments for
yourself. And there will be only very few suggested solutions,
because we are getting at a level where there is really not
one right solution, but many possible ways to tackle
a problem.
Concerning the Raku programming language, we have covered a lot of
material, but, as I warned from the very beginning,
this is far from exhaustive. The following are among
the topics that we have not covered (and will not cover);
you might want to explore the documentation on them
yourself:
\begin{description}
\item[Concurrent programming] Today's computers have
multiple processors or multicore processors; Raku
offers various ways of taking advantage of these to
run computing processes in parallel in order to
improve performance and reduce run time; see
\url{https://docs.Raku.org/language/concurrency}
for more details.
\item[Exception handling] Managing situations where
something goes wrong is an important part of
programming. Raku offers various mechanisms to
handle such situations. See \url{https://docs.Raku.org/language/exceptions}
for more details.
\item[Interprocess communication:] Programs often have to
run other programs and to communicate with them. See
\url{https://docs.Raku.org/language/ipc}.
\item[Modules] How to create, use, and distribute Raku
modules. See \url{https://docs.Raku.org/language/modules}.
\item[Native calling interface] How to call libraries
that are written in other programming languages and
follow the C calling conventions.
See \url{https://docs.Raku.org/language/nativecall}
\end{description}