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