Programação Funcional - Registros
Um registro é uma estrutura de dados para armazenar um número fixo de elementos. É semelhante a uma estrutura em linguagem C. No momento da compilação, suas expressões são traduzidas em expressões de tupla.
Como criar um registro?
A palavra-chave 'registro' é usada para criar registros especificados com o nome do registro e seus campos. Sua sintaxe é a seguinte -
record(recodname, {field1, field2, . . fieldn})
A sintaxe para inserir valores no registro é -
#recordname {fieldName1 = value1, fieldName2 = value2 .. fieldNamen = valuen}
Programa para criar registros usando Erlang
No exemplo a seguir, criamos um registro de nome student tendo dois campos, ou seja, sname e sid.
-module(helloworld).
-export([start/0]).
-record(student, {sname = "", sid}).
start() ->
S = #student{sname = "Sachin",sid = 5}.
Programa para criar registros usando C ++
O exemplo a seguir mostra como criar registros usando C ++, que é uma linguagem de programação orientada a objetos -
#include<iostream>
#include<string>
using namespace std;
class student {
public:
string sname;
int sid;
15
};
int main() {
student S;
S.sname = "Sachin";
S.sid = 5;
return 0;
}
Programa para acessar valores de registro usando Erlang
O programa a seguir mostra como acessar valores de registro usando Erlang, que é uma linguagem de programação funcional -
-module(helloworld).
-export([start/0]).
-record(student, {sname = "", sid}).
start() ->
S = #student{sname = "Sachin",sid = 5},
io:fwrite("~p~n",[S#student.sid]),
io:fwrite("~p~n",[S#student.sname]).
Ele produzirá a seguinte saída -
5
"Sachin"
Programa para acessar valores de registro usando C ++
O programa a seguir mostra como acessar valores de registro usando C ++ -
#include<iostream>
#include<string>
using namespace std;
class student {
public:
string sname;
int sid;
};
int main() {
student S;
S.sname = "Sachin";
S.sid = 5;
cout<<S.sid<<"\n"<<S.sname;
return 0;
}
Ele produzirá a seguinte saída -
5
Sachin
Os valores do registro podem ser atualizados alterando o valor para um campo específico e atribuindo esse registro a um novo nome de variável. Dê uma olhada nos dois exemplos a seguir para entender como isso é feito usando linguagens de programação orientadas a objetos e funcionais.
Programa para atualizar valores de registro usando Erlang
O programa a seguir mostra como atualizar os valores de registro usando Erlang -
-module(helloworld).
-export([start/0]).
-record(student, {sname = "", sid}).
start() ->
S = #student{sname = "Sachin",sid = 5},
S1 = S#student{sname = "Jonny"},
io:fwrite("~p~n",[S1#student.sid]),
io:fwrite("~p~n",[S1#student.sname]).
Ele produzirá a seguinte saída -
5
"Jonny"
Programa para atualizar valores de registro usando C ++
O programa a seguir mostra como atualizar valores de registro usando C ++ -
#include<iostream>
#include<string>
using namespace std;
class student {
public:
string sname;
int sid;
};
int main() {
student S;
S.sname = "Jonny";
S.sid = 5;
cout<<S.sname<<"\n"<<S.sid;
cout<<"\n"<< "value after updating"<<"\n";
S.sid = 10;
cout<<S.sname<<"\n"<<S.sid;
return 0;
}
Ele produzirá a seguinte saída -
Jonny
5
value after updating
Jonny
10