Προς το περιεχόμενο

functional programming


tr3quart1sta

Προτεινόμενες αναρτήσεις

Επίσης 14/10 ξεκινά και το μάθημα καθαρά συναρτησιακού προγραμματισμού στο edx. Το μάθημα θα χρησιμοποιήσει κυρίως Haskell.

Το έχω αναφέρει πιο πάνω αλλά καλά έκανες και πόσταρες λινκ

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 μήνες μετά...
  • Απαντ. 85
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

  • 3 εβδομάδες αργότερα...
  • 5 μήνες μετά...

 Ενδιαφερον σαν ιδεα ο functional programming, και φυσικα οπως ειπε και ο φιλος μου ο William ευπροσδεκτο οτι μειωνει τον ανταγωνιστμο.

 

  Αλλα γιατι συγκρινεις με την java που σαν γλωσσα δεν την λες και την πιο λειτουργικη, και οχι πχ με την c# που ειναι πολυ πιο συγχρονη και εχει ενννοιες οπως lamba expressions and LINQ?  

 

  Φυσικα δεν ειναι ακριβως το ιδιο, αλλα τα επιχειρηματα σου τα υπερκαλυπτει η C# εχοντας παραλληλα πρακτικη υποσταση και οχι μονο θεωρητικη. 

  O functional programming εχει την αξια οτι σου διευρύνει τον τροπο σκεψης. Αλλα για να το κανεις αυτο πρεπει ηδη να ξερεις oop programming. Δεν μειωνω την αξια της, απλα θεωρησα οτι πρεπει να αποσαφηνιστει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αλλα γιατι συγκρινεις με την java που σαν γλωσσα δεν την λες και την πιο λειτουργικη, και οχι πχ με την c# που ειναι πολυ πιο συγχρονη και εχει ενννοιες οπως lamba expressions and LINQ?

Στο παραδειγμα ηθελα να δειξω πιο πολυ imperative vs functional και οχι τοσο Java vs Haskell.

 

Μεσω Java 8 ή/και Libraries μπορεις να εχεις τα περισσοτερα απο τα features που λες για την C# (το τοπικ το ειχα ξεκινησει πριν βγει η Java 8).

 

 

 

Φυσικα δεν ειναι ακριβως το ιδιο, αλλα τα επιχειρηματα σου τα υπερκαλυπτει η C# εχοντας παραλληλα πρακτικη υποσταση και οχι μονο θεωρητικη.

 

Τα επιχειρηματα βασιζονται κυριως στην λεξη pure. Ειτε εισαι 100% pure ή δεν εισαι.

 

Just like "mostly secure," "mostly pure" is wishful thinking. The slightest implicit imperative effect erases all the benefits of purity, just as a single bacterium can infect a sterile wound.

 

 

The Curse of the Excluded Middle. "Mostly functional" programming does not work.

 

 

O functional programming εχει την αξια οτι σου διευρύνει τον τροπο σκεψης. Αλλα για να το κανεις αυτο πρεπει ηδη να ξερεις oop programming. Δεν μειωνω την αξια της, απλα θεωρησα οτι πρεπει να αποσαφηνιστει.

Κι αμα γνωριζεις functional και διευρυνεις τον τροπο σκεψης σου μεσω OOP? :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πράγματι το 2015 είναι πολύ σημαντική χρονιά για το Functional Programming. Μπορεί να βασίζεται κυρίως σε Hybrid γλώσσες όπως Javascript (με κάποιον pre-processor όπως Coffeescript ή pure ES6), Scala ίσως και λίγο Groovy, αλλά είναι πλέον κάτι που είναι απολύτως απαραίτητο να βρίσκεται στο οπλοστάσιό μας σαν επαγγελματίες προγραμματιστές αν θέλουμε να διατηρήσουμε την ανταγωνιστικότητά μας.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 5 μήνες μετά...

Πολύ καλό βιβλίο για Haskell

 

http://learnyouahaskell.com/chapters

 

αλλά δεν μου αρέσει η σύνταξη της Haskell , functional programming εκανα λίγο με Common Lisp. Καποιες καλές ιδέες , αλλά γενικά δεν εντυπωσιάστηκα.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με την Μ2000 έχω γράψει ένα μικρό πρόγραμμα που προσθέτω μερικές δυνατότητες για συναρτησιακό προγραμματισμό.

 

http://georgekarras.blogspot.gr/2015/09/2000_70.html

 

Για παράδειγμα εδώ χρησιμοποιώ μια μεταβλητή που θα κρατήσει το αποτέλεσμα της Goal. Εκεί δίνεω δυο συναρτήσεις η μία καλεί την integer(25) και η άλλη παράγει για τους 25 αριθμούς τη λίστα κύβων αυτών των αριθμών. Το σύμβολο & λέει ότι περνάω με αναφορά την μεταβλητή, και είναι γενική γιατί τα αλφαριθμητικά "{ }" είναι συναρτήσεις (ανώνυμες). Δηλαδή στη Goal περνάω δυο συναρτήσεις. Θα μπορούσε να δει κανείς το τμήμα Goal ως αντικείμενο (αλλά είναι τμήμα, κάτι διαφορετικό από μια διαδικασία ή μια ρουτίνα).

 

Γενικό ThisString$ : Goal "{Κάλεσε integer(25)}"  , "{qubic_of &ThisString$}" : Τύπωσε ThisString$

 

Βεβαίως σημασία έχει σε μια γλώσσα να λύνουμε ένα πρόβλημα γρήγορα. Εκεί δεν ξέρω αν μια λύση με τη Haskel θα ήταν γρηγορότερη από μια λύση με τη C. Δηλαδή η ευκολία να γράψουμε ένα πρόγραμμα δεν είναι ανάλογη με την ταχύτητα του κώδικα. Όμως μπορούμε να έχουμε λύση εκεί που με άλλο πρόγραμμα θα αργήσουμε να βρούμε. Βεβαίως εφόσον κανείς καταλάβει αυτές τις γλώσσες και εφόσον υπάρχει "τροφή", υπάρχουν προβλήματα να λυθούν σε αυτές!

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα ήθελα να προσθέσω μια ακόμα functional γλώσσα, την Clojure . Εχουμε ολοκληρο backend στημένο και τρέχει έδω και 2+ χρόνια με αυτή και νομίζω δεν ήμουν ποτέ να ήμουν τόσο ευτυχισμένος.

 

Επίσης, θα ήθελα να πω οτι το functional programming δεν είναι κάτι καινούριο αλλά υπάρχει εδώ και 50+ χρόνια, από τότε που φτίαχτηκε η Lisp (στην οποία και βασίζεται η Clojure και έχουνε γίνει influence άλλες, όπως η Haskell).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Έχει κανείς να προτείνει κάτι σε functional programming και πάνω σε optimization/mathematical programming και learnign; Επίσης, αυτό που θα προτείνει τι διαφορές στις επιδόσεις έχει από πακέτα όπως scikit ή pylearn ή keras;

 

Δηλαδή, και για τα πιο απλά όπως grid search ή πιο σύνθετα όπως RNNs, υπάρχει κάτι σε functional programming που να παρέχει GUI (π.χ. όπως για την python το PyCharm), ease of setup (vs pip install), expressibility (vs python και keras) και επιδόσεις (κυρίως time needed for calculations) ;

Επεξ/σία από groot
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To scikit  που κοίταξα...δεν μπορεί να το δει κανείς ως functional programming..είναι πρόσθετο για διαγράμματα. (σκέφτηκα να το βάλω στο linux αλλά ήθελε πολλές εγκαταστάσεις...και τις αποφεύγω)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

To scikit  που κοίταξα...δεν μπορεί να το δει κανείς ως functional programming..είναι πρόσθετο για διαγράμματα. (σκέφτηκα να το βάλω στο linux αλλά ήθελε πολλές εγκαταστάσεις...και τις αποφεύγω)

 

Αδερφέ εάν αναφέρεσαι σε αυτό:

 

http://scikit-learn.org/stable/

 

Τότε δεν ξέρεις τι λες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...