Programas en Racket Programación Funcional #1

En esta lista de programas ahora abordaremos el lenguaje de programación llamado racket el cual esta orientado a un paradigma de programación funcional donde la sintaxis y el código están más claros y es más intuitivo entenderlo.



En el siguiente código se muestra las primeras línea de código de un lenguaje funcional más concretamente Racket. En este programa se mencionan los tipos de datos más utilizados y los más comunes a la hora de desarrollar programas de este tipo.


 
/*Autor: Ernesto Maya
Año: 2017
Código: Tipos de datos racket*/
#lang racket
;(begin
; (display "Hello Word")
; (newline) ;Salto de línea
; )
;Tipos de datos simple
;Booleanos
#t ; verdadero
#f ;falso
;Operadores
; >,<,=,equal?,or,and,not
(< 3.5 4)
(> 4 7)
(= 3 3.0)
(equal? 3 3.0)
(or (> 4 7) (< 3.5 4))
(and (> 4 7) (< 3.5 4))
(not (< 3.5 4))
;caso de booleanos
(boolean? #t) ; Es un predicado que determina si el parametro es un booleano
(boolean? 3)
;Números
; Reales ejem. 3.0
; Racionales ejem. 1/2
; Enteros 4
; Complejos (2+3i)
; Existen predicados para determinar el tipo de número
; numbre?, es el predicado general para todos los números
(number? 8)
(number? 1/2)
(number? (3+4i))
;real? determina si un número es real
(real? 3.4)
(real? 3/4)
(real? 3)
;integer? determina si un número es entero
(integer? 5)
(integer? 9.0)
;rational? determina si un número es de la forma p/q
(rational? 1/2)
(rational? 0.5)
;complejo? determina si un número es de la forma a+bi, es un complejo
(complex? 3+4i)
;<= determina que los números esten en orden
(<= 2 3 4 5 6 5 7) ;---> #f
(<= 2 3 4 5 6 7) ;---> #t
(max 13 4 6 78 3) ;---> 78
(min 13 4 6 78 3) ;---> 3
(/ 15 8) ;---> 1 7/8
(quotient 22 4) ;---> 5, devuelve parte entera de la división
(remainder 22 4) ;---> 2, devuelve el residuo de la división
(equal? 1/2 0.5) ;---> #f, verifica que sean el mismo número (misma representación)
(= 1/2 0.5) ;---> #t, tienen el mismo valor
(equal? 0.5 (/ 1 2)) ;-> #f
(abs (-4)) ;---> 4, devuelve el valor absoluto
(positive? (- 3)) ;---> #f
(negative? (- 4)) ;---> #t
(zero? 9) ;---> #f, un número es 0
(infinite? 2.0) ;---> #f, un número infinito
(even? 3) ;---> #f, determina si un número es par
(odd? 3) ;---> #t, determina si un número es impar
; Carácteres
; Soporta carácteres internacionales y se codifíca en UTF-8
#\a
#\A
#\space
#\ñ
#\á
#\newline
#\tab
;char?, determina si algo es un caracter
(char? #\a)
; Con el predicado anterior hay una familia de predicados asociados
; char>?, char<?, char=?,char <=?, char >=?, que comparar dos caracteres de acuerdo a su código
(char>? #\A #\a)
; También hay una familia de rpedicados para determinar que familia de predicados son:
; char-numeric?, char-alphabetic?, char-lower-case?, char-upper-case?, char-whitespace?
(char-ci=? #\a #\A) ;-----> #t, no difiere de entre mayúsculas y minusculas
; char-ci>?, char-ci<?
(char-upcase #\a) ;-----> #\A, convierte un caracter a mayúscula
(char->integer #\a) ;-----> 97, devuelve su código ASCII
; Cadenas
; Las cadenas son representados entre comillas(""), "hola mundo"
(string #\h #\o #\l #\a) ;----> "hola"
(string? "hola") ;----> #t
(make-string 5 #\p) ;----> "ppppp", devuelve copias de lo que le estoy pasando
(substring "hola mundo cruel" 3 7) ;--> "a mu", devuelve los elementos desde 3 hasta una antes del 7,
;el conteo tiene la posición número 6
(string-ref "hola mundo" 3) ;----> #\a
(string->list "hola") ;----> ' (#\h #\o #\l #\a), covierte la cadena en una lista de caracteres
(string-length "hola") ;----> 4, devuelve el número de carácteres de la cadena
(string-append "hola" " " "mundo" " " "cruel") ;----> Concatena, "hola mundo cruel"
;predicados asociados con string?: string>?, string<?, string=?, string>=?, string<=?
(string>? "hola" "mundo") ;----> #f
(string-ci=? "hola" "HOLA") ;----> #t
; Predicados de comparación que son insensibles a mayúsculas y minúsculas
; string-ci?: string-ci>?, string-ci<?, string-ci=?, string-ci>=?, string-ci<=?
(integer->char 97) ;----> #\a, convierte el entero a un código de caracter ASCII
(list 1 2 3 4 5)
RETO DEL BLOG, PROPÓN UN PROGRAMA MEJORADO Y CON SUS RESPECTIVAS EXCEPCIONES QUE PODRÍA TENER



Te sirven mis contenidos y quieres ayudarme a crecer invitame un chicle
Quieres ganar dinero acortando enlaces entonces registrate en Adfly
Quieres ver contenido de juegos, tutoriales, cosas random suscribete a mi canal de Youtube.
Juegos, Tutos, Tops, etc

Comentarios

Entradas más populares de este blog

Programas en C #3 Tres números, el mayor, el menor y el del medio

Programa en Haskell Tipos de datos pasadas como funciones # 3