Programas

Páginas: 6 (1442 palabras) Publicado: 5 de octubre de 2014
#lang plai-typed POTENCIA
; Potencia : (numero numero -> numero)
; Resuelve cualquier potencia
#;(define (potencia)(lambda (x y)(cond ((= y 0)1)((=y 1)x)(else (* x (potencia x (- y 1)))))))
(define potencia (lambda (B E)
(cond ((= E 0) 1)
((= E 1) B)
(else (* B (potencia B (- E 1)))))))
(test (potencia 17 3) 4913)
(test (potencia 17 42)4773695331839566234818968439734627784374274207965089)
(test (potencia 5 0) 1)
(test (potencia 22 1) 22)

#lang plai-typed PLURAL

;---------------------------------------------------------------------
; Nombre de la función: invertir-palabra
;
; Descripción: Esta función devuelve la palabra como una lista
; de caracteres empezando por la ultima letra de la
; palabra hasta terminar con la primera letra.;
; Contract:
; invertir-palabra: (string -> listof char)
;
; Template:
; (define (invertir-palabra [palabra : string]): (listof char)
; (... palabra ...))
;----------------------------------------------------------------------

(define (invertir-palabra [palabra : string]): (listof char)
(reverse
(string->list palabra)))

(test(invertir-palabra "dog") (list #\g #\o #\d))
(test (invertir-palabra "cat") (list #\t #\a #\c))

;----------------------------------------------------------------------
; Nombre de la función: agregar-s
;
; Descripción: Esta función le agrega la letra s al final de una
; palabra.
;
; Contract:
; agregar-s:(string -> string)
;
; Template:
; (define (agregar-s[palabra : string]): string
; (...palabra...))
;----------------------------------------------------------------------

(define (agregar-s [palabra : string]): string
(list->string
(reverse
(cons #\s
(invertir-palabra palabra)))))

(test (agregar-s "hat") "hats")
(test (agregar-s "dog") "dogs")
(test (agregar-s "baby") "babys")
(test (agregar-s"fly") "flys")

;----------------------------------------------------------------------
; Nombre de la función: agregar-ies
;
; Descripción: Esta función quita la última letra de una palabra y le
; agrega las letras i, e y s.
;
; Contract:
; agregar-ies:(string -> string)
;
; Template:
; (define (agregar-ies [palabra : string]): string
;(...palabra...))
;----------------------------------------------------------------------

(define (agregar-ies [palabra : string]): string
(list->string
(reverse
(cons #\s
(cons #\e
(cons #\i
(rest
(invertir-palabra palabra))))))))

(test (agregar-ies "fly") "flies")
(test (agregar-ies "sky") "skies")
(test (agregar-ies"hat") "haies")
(test (agregar-ies "dog") "doies")

;----------------------------------------------------------------------
; Nombre de la función: ultima-letra
;
; Descripción: Esta función devuelve la última letra de una palabra.
;
; Contract:
; ultima-letra:(string -> char)
;
; Template:
; (define (ultima-letra [palabra : string]): string
;(...palabra...))
;----------------------------------------------------------------------

(define (ultima-letra [palabra : string]): char
(first
(invertir-palabra palabra)))

(test (ultima-letra "baby") #\y)
(test (ultima-letra "cat") #\t)

;----------------------------------------------------------------------
; Nombre de la función: plural
;
; Descripción: Esta funcióndevuelve el plural de una palabra en
; ingles. Si la palabra termina con la letra y le agrega
; la letra s al final de la palabra. En caso contrario le
; quita la ultima letra que tenga la palabra y le agrega
; la terminación -ies.
;
; Contract:
; plural:(string -> string)
;
; Template:
; (define (plural [palabra :...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programa
  • Program
  • Un Programa
  • Programas
  • Programas
  • Programa
  • Programador
  • Program

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS