Funciones puras y modificadores en Julia

La programación funcional es muy común hoy en día, donde tenemos que escribir una función para actualizar y modificar las variables o hacer algunas modificaciones según el requisito. En Julia tenemos dos enfoques para actualizar y modificar las variables y objetos que son Funciones Puras y los demás son Modificadores veamos uno por uno cada uno de ellos con ejemplos.

Funciones puras

Cuando estamos trabajando en una función y no realiza ningún tipo de cambio utilizando ese objeto que se pasa como argumento. O podemos decir que necesitamos crear una instancia separada de la misma clase para actualizar la variable y devolver el objeto recién actualizado.

Digamos que tenemos una estructura de estudiante y esa estructura tiene atributos como el nombre del estudiante, el número de registro del estudiante, el número de móvil del estudiante y la dirección del estudiante y estamos inicializando todas las variables para demostración.

Julia

# Create Structure Student 
struct Student
     name::String
     address::String
     roll::Integer
     mobile::Integer
end
  
# Initialize the Structure Student
gfg = Student("ABC", "DEF", 100, 100000000)

Ahora supongamos que tenemos que actualizar el número de móvil del estudiante, tenemos que hacer un cambio de nombre de función móvil donde tenemos que pasar el objeto de tipo de estudiante y otro es el nuevo número de móvil para obtener la actualización y devolver el nuevo objeto de tipo de estudiante después actualización

Julia

# Create a Function name changeMobile
  
function changeMobile(stud::Student, newmobile::Integer)
      name = stud.name
      address = stud.address
      roll = stud.roll
      demo_gfg = Student(name, address, roll, newmobile)
      return demo_gfg
end

A partir de ahora, hemos creado nuestra función. Ahora tenemos que usar esta función para actualizar el número de móvil del estudiante existente sin cambiar las variables directamente.

Julia

# Use the changeMobile function 
changed_gfg = changeMobile(gfg, 400000000)
  
println(changed_gfg)

Producción :

Modificadores

Cuando estamos trabajando en una función y realiza algún tipo de cambio utilizando ese objeto que se pasa como argumento. O podemos decir que no necesitamos crear una instancia separada de la misma clase para actualizar la variable y devolver el mismo objeto actualizado.

Digamos que tenemos una estructura de automóvil y esa estructura tiene atributos como el nombre del automóvil, el número del automóvil, el nombre del propietario del automóvil y el precio del automóvil y estamos inicializando todas las variables para la demostración.

Julia

# Create Structure Student 
struct Car
     name::String
     number::String
     owner::String
     price::Float64
end
  
# Initialize the Structure Car
gfg = Car("ABC", "DL123", "Kiki", 45000.00)

Ahora supongamos que tenemos que actualizar el precio de un automóvil, tenemos que hacer un cambio de nombre de función Precio donde tenemos que pasar el objeto de Tipo de automóvil y otro es el precio del automóvil actualizado para obtener una actualización y devolver la misma instancia actualizada de un Automóvil tipo de objeto.

Julia

# Create a Function name changePrice
  
function changePrice(car::Car, newprice::Float64)
      name = car.name
      number = car.number
      owner = car.owner
      gfg = Car(name, number, owner, newprice)
      return gfg
end

A partir de ahora, hemos creado nuestra función. Ahora tenemos que usar esta función para actualizar el precio del automóvil existente sin cambiar las variables directamente.

Julia

# Use the changePrice function 
gfg = changePrice(gfg, 500000.500)
  
println(gfg)

Producción :

¿Qué metodología deberíamos preferir para escribir cualquier función?

Siempre debemos preferir la metodología de función pura porque no perderemos nuestros datos originales y también podemos tener datos actualizados en los que podemos trabajar. Este tipo de metodología crea funciones que son más rápidas de desarrollar y tienen menos posibilidades de tener errores que los programas que usan modificadores .

Publicación traducida automáticamente

Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *