Nehmen Sie Kontakt mit der funktionalen Programmierung in JavaScript oder Python 3 auf

Was ist funktionale Programmierung? Ich habe versucht, sie zu berühren, weil es meine erste Erfahrung mit funktionaler Programmierung mit JavaScript oder Python war. Ich lerne noch, also werde ich mir notieren, was ich vorerst gelernt habe.

Curry ist heute die Hauptsache: Curry:

Für JavaScript

Vorbereitende Bewegung

main.js


        //Filter für Filter

        let talentList = [
            {'name' : "Takeshi Takada" , 'Belong' : null},
            {'name' : "Motto" , 'Belong' : null},
            {'name' : "Midoni" , 'Belong' : "N○"},
            {'name' : "Kokuni" , 'Belong' : null},
            {'name' : "Kassan" , 'Belong' : "Kein Rashu"},
            {'name' : "Urwald" , 'Belong' : "Kein Rashu"},
        ]

        let getFi = talentList.filter( x => x.Belong === null )
        getFi.forEach( e => console.log(e.name))
        /*
Takeshi Takada
Motto
Kokuni
        */


        //Für jeden mit dem Ergebnis der Filterung

        let ZimushoAruName = []

        talentList
            .filter( x => !x.Belong)
            .forEach( x => ZimushoAruName.push(x.name))
        console.log(ZimushoAruName)

        /*
            (3) ["Midoni", "Kassan", "Urwald"]
        */

        //Irgendwie beliebt reduzieren

        //Geben Sie den größeren zurück
        const getMax = (a,b) => a > b ? a : b

        let fruits = [
            { "name" : "Apfel" , "price" : 200 },
            { "name" : "Traube" , "price" : 500 },
            { "name" : "Persimmon" , "price" : 150 },
            { "name" : "Erdbeere" , "price" : 300 },
            { "name" : "Melone" , "price" : 900 },
            { "name" : "Banane" , "price" : 100 },
        ]

        let m = fruits.reduce( (a,b) => getMax(a,b.price),0)
        console.log(m)
        // 900

Funktion, diesmal schwer zu machen

main.js


const reduce = func => start => datas => datas.reduce( (acum,product) => func(acum)(product.price),0) 

Sei zuerst sanft

main.js



    let ggj = function(c){
        return function(e){
            console.log(c + e)
        }
    }
hogee = ggj("Takeshi Takada") // c
hogee("Es ist eine Straße") // e
//Es ist die Straße von Takeshi Takada

ich werde mein Bestes geben

main.js


let a = b => c => d => b * c * d
console.log(a(1)(2)(3))
console.log(a(1)(2)(0))
// 6 
// 0

Ich werde mein Bestes geben

main.js


const products = [
            { "name" : "Tee" , "price" : 100 , "sales": 1000 },
            { "name" : "Reisbällchen" , "price" : 150 , "sales": 1300 },
            { "name" : "Bento" , "price" : 500 , "sales": 300 },
            { "name" : "Kuchen" , "price" : 300 , "sales": 200 },
            { "name" : "Gebratenes Huhn" , "price" : 200 , "sales": 500 },
        ]
const add = x => y => x + y
const reduce = func => start => datas => datas.reduce( (acum,product) => func(acum)(product.price),0) 
const getSumPrice = reduce(add)(0)(products)
console.log(getSumPrice)
// 1250

Für Python

Funktion, diesmal schwer zu machen

qiita.py


def getData(f):
	return lambda w : lambda v : lambda d : lambda : filter(lambda x : f(x[w])(v),d)

Sei zuerst sanft

qiita.py



product = [
	{'name':'takadakenshi','price':300},
	{'name':'yokoyamamidori','price':100},
	{'name':'babayutaka','price':500},
	{'name':'nodazori','price':10},
	]

#Rückkehr mit Filter
def addfilter(datas,price):
	return filter(lambda x: x['price'] >= price,datas)
	
def searchWithPrice(datas):
	return lambda price : lambda : addfilter(datas,price)
	
getsan = searchWithPrice(product)(300)
getyon = searchWithPrice(product)(400)

print(list(getsan()))
print('++++++++++++++')
print(list(getyon()))

'''__Ausgabeergebnis______________

[{'name': 'takadakenshi', 'price': 300}, {'name': 'babayutaka', 'price': 500}]
++++++++++++++
[{'name': 'babayutaka', 'price': 500}]

_____________'''


ich werde mein Bestes geben

qiita.py


def eq(a):
	return lambda b : a == b
	
def bigger(a):
	return lambda  b : a >= b
	
def kaiserSearch(func):
	return lambda where : lambda word : lambda product : lambda : filter(lambda x : func(x[where])(word),product)

out2 = kaiserSearch(eq)('name')('babayutaka')(product)
out3 = kaiserSearch(eq)('price')(100)(product)

out4 = kaiserSearch(bigger)('price')(300)(product)

print(list(out2()))
print(list(out3()))
print(''' 
bigger:
''')
print(list(out4()))



'''
Ausgabeergebnis
[{'name': 'babayutaka', 'price': 500}]
[{'name': 'yokoyamamidori', 'price': 100}]
 
bigger:

[{'name': 'takadakenshi', 'price': 300}, {'name': 'babayutaka', 'price': 500}]


'''


Was Sie tun, ist das gleiche

qiita.py



import requests

url = 'https://jsonplaceholder.typicode.com/users'

json_data = requests.get(url).json()

def eq(a):
	return lambda b : a == b
def getData(f):
	return lambda w : lambda v : lambda d : lambda : filter(lambda x : f(x[w])(v),d)
result = getData(eq)('id')(1)(json_data)

print(list(result()))



Die von json erhaltene ID1 wird angezeigt.

Recommended Posts

Nehmen Sie Kontakt mit der funktionalen Programmierung in JavaScript oder Python 3 auf
Funktionsprogrammierung in Python Project Euler 1
Funktionale Programmierung in Python Project Euler 3
Funktionsprogrammierung in Python Project Euler 2
Beginnen Sie mit Python mit Blender
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Express Python-Ertrag in JavaScript oder Java
Programmieren mit Python
Programmieren mit Inline-Scripting von Python / JavaScript / VBScript in Automation Anywhere A 2019
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Was ist "funktionale Programmierung" und "objektorientiert"? Python Edition
3. 3. KI-Programmierung mit Python
Python-Programmierung mit Atom
Wettbewerbsfähige Programmierung mit Python
Holen Sie sich Datum in Python
Holen Sie sich ein Date mit Python
Python-Programmierung mit Excel
Programmieren mit Python Flask
Holen Sie sich alle Standardeingaben, die in der Paiza- und Wettbewerbsprogrammierung verwendet werden, mit int (Python)
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
Mit Python psycopg2 erhalten Sie Ergebnisse im Diktatformat
Hübscher Druck json oder yaml mit Farbe in Python
Beispielcode für den Einstieg in den GLSL-Shader in Processing (entweder Java oder Python)
Holen Sie sich den Ländercode mit Python
Programmieren mit Python und Tkinter
Schaben mit Selen in Python
Holen Sie sich letzten Monat in Python
Betreiben Sie LibreOffice mit Python
Holen Sie sich Twitter-Timeline mit Python
Schaben mit Chromedriver in Python
Debuggen mit pdb in Python
Umgang mit Sounds in Python
Scraping mit Selen in Python
Tweet mit Bild in Python
Holen Sie sich die Terminalgröße in Python
Holen Sie sich explizit EOF in Python
Kombiniert mit Ordnungszahl in Python
Beginnen Sie mit Python! ~ ② Grammatik ~
Holen Sie sich Lager mit Python
Holen Sie sich Evernote-Notizen in Python
Holen Sie sich das Home-Verzeichnis mit Python
Holen Sie sich Tastaturereignis mit Python
Netzwerkprogrammierung mit Python Scapy
Holen Sie sich Alembic-Informationen mit Python
Holen Sie sich japanische Synonyme mit Python
Vergleichen Sie HTTP GET / POST mit cURL (Befehl) und Python (Programmierung).
Entfernen Sie führende und nachfolgende Leerzeichen in Python, JavaScript oder Java
Nachricht vom ersten Offset mit Kafka Consumer in Python abrufen
Holen Sie sich LeapMotion-Daten in Python.
Zahlenerkennung in Bildern mit Python
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
GUI-Programmierung in Python mit Appjar
Testen mit Zufallszahlen in Python
Link, um mit Python zu beginnen
GOTO in Python mit erhabenem Text 3
Scraping mit Selen in Python (Basic)
CSS-Analyse mit cssutils in Python
[Python] Mit Pokemon erlernte objektorientierte Programmierung
Holen Sie sich den Desktop-Pfad in Python
Führen Sie mruby mit Python oder Blender aus