Programación programación funcional paradigmática

Hablando de un tema

 

Tema: Leer en un archivo de texto, determinar la frecuencia de uso de todas las palabras y ordenarlas de mayor a menor, e imprimir una lista ordenada de todas las palabras y sus frecuencias.

 

Solución tradicional

imagen

 

Solución funcional

imagen

La diferencia entre imperativo y funcional.

  1. El estilo de programación imperativo a menudo nos obliga a entretejer diferentes tareas por razones de rendimiento para que podamos completar múltiples tareas con un ciclo. En el lenguaje de programación imperativo orientado a objetos, la unidad de reutilización es el mensaje utilizado para la comunicación entre clases y clases, como los métodos.

     

  2. La programación funcional usa map () y filter () para liberarnos, lo que nos permite considerar el problema en un nivel superior de abstracción y ver el problema con mayor claridad. La idea de reutilización en lenguajes de programación funcionales es muy diferente.

     

    Los lenguajes funcionales abogan por el uso de operaciones altamente optimizadas para estas estructuras de datos en un número limitado de estructuras de datos clave (como lista, conjunto y mapa) para formar un mecanismo operativo básico. Luego, el desarrollador inserta su propia estructura de datos y funciones de alto nivel para ajustar el modo de operación del mecanismo de acuerdo con el propósito específico.

     

     

Una pregunta más

Tema: busque la posición del primer carácter en una matriz de caracteres en una cadena. Por ejemplo, "Hola, mundo", ["a", "e", "i", "o", "u"], luego e es el primer carácter de la cadena, la posición es 1 y se devuelve 1

Código de resolución de problemas:

        let words = "h e l l o w o r l d"
        let compare = ["a", "e", "i", "o", "u"]
        let wordsList = words.split(separator: " ")
        var index = 0
        zip(wordsList, compare).filter { $0 == $1}.map { (sub, str) in
            index = wordsList.firstIndex(of: sub) ?? 0
        }
        print(index)

Bienvenido a prestar atención a la cuenta pública de [The Way of Infinite Testing], responder a [recibir recursos],
recursos de aprendizaje de programación de Python productos secos, automatización de la interfaz de usuario de la aplicación del marco Python + Appium , automatización de la interfaz de usuario web del marco Python + Selenium, API del marco Python + Unittest automatización,


Los recursos y códigos se envían gratis ~
Hay un código QR de la cuenta oficial en la parte inferior del artículo, puede escanearlo en WeChat y seguirlo.

Observaciones: Mi cuenta pública personal se ha abierto oficialmente, dedicada al intercambio de tecnología de prueba, que incluye: pruebas de big data, pruebas funcionales, desarrollo de pruebas, automatización de la interfaz API, operación y mantenimiento de pruebas, pruebas de automatización de la interfaz de usuario, etc., búsqueda pública de WeChat cuenta: "Wuliang The Way of Testing", o escanee el código QR a continuación:

 ¡Presta atención y crezcamos juntos!

Supongo que te gusta

Origin blog.csdn.net/weixin_41754309/article/details/113093262
Recomendado
Clasificación