Tracks
/
Emacs Lisp
Emacs Lisp
/
Ejercicios
/
Número de teléfono
Número de teléfono

Número de teléfono

Fácil

Introducción

Te uniste a LinkLine, una empresa líder en comunicaciones que trabaja para garantizar conexiones confiables para todos. El equipo enfrenta un gran desafío: los usuarios envían números de teléfono en todo tipo de formatos, como guiones, espacios, puntos, paréntesis e incluso prefijos. Algunos números son válidos, mientras que otros son imposibles de usar.

Tu misión es convertir este caos en orden. Limpiarás los números válidos y les darás el formato adecuado para usarlos en el sistema. Al mismo tiempo, identificarás y filtrarás las entradas que no sean válidas.

El éxito de las operaciones de LinkLine depende de tu capacidad para separar lo útil de lo inútil. ¿Estás listo para asumir el desafío y mantener las conexiones funcionando sin problemas?

Instrucciones

Limpia números de teléfono para que se les puedan enviar mensajes SMS.

El Plan de Numeración de América del Norte (NANP) es un sistema de numeración telefónica que usan muchos países de América del Norte, como Estados Unidos, Canadá o Bermudas. Todos los países del NANP comparten el mismo código de país internacional: 1.

Los números del NANP son números de diez dígitos que constan de un código de tres dígitos del plan de numeración, conocido comúnmente como código de área, seguido de un número local de siete dígitos. Los primeros tres dígitos del número local representan el código de central, seguido del número único de cuatro dígitos, que es el número de abonado.

El formato se representa normalmente como

NXX NXX-XXXX

donde N es cualquier dígito del 2 al 9 y X es cualquier dígito del 0 al 9.

A veces también llevan antepuesto el código de país (representado como 1 o +1).

Tu tarea es limpiar números de teléfono con distintos formatos, eliminando la puntuación y el código de país, si está presente.

Por ejemplo, los siguientes números

  • +1 (613)-995-0253
  • 613-995-0253
  • 1 613 995 0253
  • 613.995.0253

deben producir todos la salida

6139950253

Nota: Como este ejercicio solo trata números de teléfono usados en países del NANP, solo el 1 se considera un código de país válido.

Implementación

Además de la función numbers, que limpia los números de teléfono, necesitas escribir dos funciones más en la pista de Emacs Lisp: area-code y pprint.

Cada una de las funciones adicionales recibe el número de teléfono como su único parámetro.

La primera función, area-code, extrae el código de área del argumento, mientras que la segunda, pprint, transforma el argumento en un string con el formato de

(NXX) NXX-XXXX

donde N y X son como se describen arriba.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Emacs Lisp Exercism

¿Todo listo para empezar Número de teléfono?

Regístrate en Exercism para aprender y dominar Emacs Lisp con 96 ejercicios y mentoría humana real, todo gratis.