Prof. Francisco Reverbel
|
![]() |
Esta página estará em permanente construção até o final do semestre... |
Agosto |
[H|T]
) e de concatenação
(L1 ++ L2
) de listas.
Setembro |
case
. Exemplo de uso: função
filter(P,L)
.if
. Uso da guarda
true
em expressões if
.
term_to_binary(Term)
e
binary_to_term(Bin)
, que oferecem
funcionalidade análoga à da seriação Java.-include
,
-define
, -ifdef
, ...$a
,
$b
, $c
, ...X == Y
,
X /= Y
) e identidade
(X =:= Y
,
X =/= Y
).andalso
e orelse
.erlang:make_ref()
.Pid = spawn(Fun)
Pid ! Msg
receive ... end
sleep(Time)
flush_mailbox()
priority_receive()
receive ... end
.
spawn
: spawn(Mod, FuncName, Args)
trap_exit
) e a noção de "processo de
sistema".spawn_link(Fun)
process_flag(trap_exit, true)
link(Pid)
unlink(Pid)
exit(Why)
exit(Pid, Why)
on_exit
, que instala um exit
handler. erlang:monitor(process, Item)
.
spawn(Node, Fun)
spawn(Node, Mod, Func, Arglist)
spawn_link(Node, Fun)
spawn_link(Node, Mod, Func, Arglist)
disconnect_node(Node)
monitor_node(Node, Flag)
node()
node(Arg)
nodes()
is_alive()
lib_chan
:
lib_chan
.lib_chan
:
start_server()
start_server(Conf)
connect(Host, Port, Service, Passwd, ArgsC)
lib_chan
).
Outubro |
gen_server
,
gen_fsm
, gen_event
e
supervisor
.gen_server
.supervisor
.
pmap
e funções assemelhadas. Paralelização de
código sequencial por meio de pmap
.
val
s), de variáveis que aceitam reatribuições
(var
s) e de funções (def
s).while
).foreach
e
for
).
apply
e update
. Caso de
uso: acesso aos elementos de um vetor.apply
: método "fábrica" (factory
method) definido no companion object de
uma classe.scala.collection.Set
,
scala.collection.immutable.Set
,
scala.collection.mutable.Set
e as classes
scala.collection.immutable.HashSet
e
scala.collection.mutable.HashSet
.
scala.collection.Map
,
scala.collection.immutable.Map
,
scala.collection.mutable.Map
e as classes
scala.collection.immutable.HashMap
e
scala.collection.mutable.HashMap
. O método
"->
" e a notação
"chave -> valor
".Application
.val
s (p. 62) e de falar sobre igualdade de
objetos (pp. 89-90).]
override
), pré-condições (uso de
require
), auto-referências (uso de
this
), membros privados, sobrecarga de
métodos e de operadores, conversões implícitas (uso de
implicit
).
if
.while
e do
-while
.for
. Os dois empregos de for
:
iteração sobre coleções e produção (yield
) de
coleções.throw
(lançamento de exceções) e
try
(tratamento de exceções). O tipo de uma
expressão throw
: scala.Nothing
,
que é subtipo de qualquer outro tipo.match
. Além
dos exemplos do capítulo 7, vimos também o exemplo
isort
(insertion sort) da página 301
(capítulo 16) do Odersky.
Novembro |
override
.
Any
, AnyVal
e
AnyRef
.Null
e Nothing
.Ordered
.
List
ou Array
) e tupla.
Padrões tipados e type erasure. sealed
).Option
.
private[this]
).
Dezembro |
val
e var
abstratos.val
abstratos. Campos
val
preguiçosos (lazy
).type
s (membros abstratos que
são tipos).
scala.actors.Actor
. Métodos para envio
(!
) e recebimento (receive
) de
mensagens.react
.