Ενότητα 8: Συναρτησιακός Προγραμματισμός

Σχετικά έγγραφα
Συμβολικές Γλώσσες Προγραμματισμού. Ενότητα 6: Λίστες. Νικόλαος Καραμπετάκης Τμήμα Μαθηματικών

Συμβολικές Γλώσσες Προγραμματισμού. Ενότητα 2: Ξενάγηση στο Mathematica. Νικόλαος Καραμπετάκης Τμήμα Μαθηματικών

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ιστορία της μετάφρασης

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εκκλησιαστικό Δίκαιο

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εκκλησιαστικό Δίκαιο

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Παράκτια Τεχνικά Έργα

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ενότητα 5: Γραφικές Παραστάσεις

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Ιστορία της μετάφρασης

Ενότητα 6: Ακρότατα συναρτησιακών διανυσματικών συναρτήσεων. Νίκος Καραμπετάκης Τμήμα Μαθηματικών

Εισαγωγή στους Αλγορίθμους

Γενικά Μαθηματικά Ι. Ενότητα 19: Υπολογισμός Εμβαδού και Όγκου Από Περιστροφή (2 ο Μέρος) Λουκάς Βλάχος Τμήμα Φυσικής

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Μηχανολογικό Σχέδιο Ι

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΟΙΚΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΚΑΔΗΜΑΪΚΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΑΘΗΜΑΤΑ Γενικά Μαθηματικά Ι Ενότητα 11 : Ακολουθίες και Σειρές Λουκάς Βλάχος Τμήμα Φυσικής

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Διοικητική Λογιστική

Εκκλησιαστικό Δίκαιο

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εισαγωγή στους Αλγορίθμους

Αξιολόγηση μεταφράσεων ιταλικής ελληνικής γλώσσας

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Γεωργική Εκπαίδευση Ενότητα 9

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Εκκλησιαστικό Δίκαιο

Διπλωματική Ιστορία Ενότητα 2η:

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Οδοποιία IΙ. Ενότητα 14: Υπόδειγμα σύνταξης τευχών θέματος Οδοποιίας. Γεώργιος Μίντσης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Φ 619 Προβλήματα Βιοηθικής

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διδακτική της Πληροφορικής

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 4. Ενότητα 5: Το Θεώρημα του Fubini. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

Φ 619 Προβλήματα Βιοηθικής

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Επιμέλεια μεταφράσεων και εκδοτικός χώρος

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Γενικά Μαθηματικά Ι. Ενότητα 8: Εφαρμογές Σειρών Taylor. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Στρατηγικό Μάρκετινγκ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Γενικά Μαθηματικά Ι. Ενότητα 6: Ακρότατα Συνάρτησης. Λουκάς Βλάχος Τμήμα Φυσικής

Ευαγγελικές αφηγήσεις της Ανάστασης

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Διαγλωσσική μεταφορά και διαμεσολάβηση

Συμπεριφορά Καταναλωτή

Μηχανολογικό Σχέδιο Ι

Ανώτερα Μαθηματικά ΙI

Ανώτερα Μαθηματικά ΙI

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Γενικά Μαθηματικά Ι. Ενότητα 2: Τριγωνομετρικές, Εκθετικές και Σύνθετες Συναρτήσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Εισαγωγή στους Αλγορίθμους

Συμπεριφορά Καταναλωτή

Χώρος και Διαδικασίες Αγωγής

Μοντέρνα Θεωρία Ελέγχου

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης

ΑΠΘ, Τµ. Μηχανολόγων Μηχ., ΙΑΧΕΙΡΙΣΗ ΕΝΕΡΓΕΙΑΚΩΝ ΠΟΡΩΝ - Σηµειώσεις, Γ. Τσιλιγκιρίδης

Διδακτική της Περιβαλλοντικής Εκπαίδευσης

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

Διαγλωσσική μεταφορά και διαμεσολάβηση

Διοίκηση Επιχειρήσεων

Συγκριτικό Εκκλησιαστικό Δίκαιο

Τεχνολογία και Γλωσσική Κατάρτιση

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Αξιολόγηση και ανάλυση της μυϊκής δύναμης και ισχύος

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Επιμέλεια μεταφράσεων και εκδοτικός χώρος

Κλασσική Θεωρία Ελέγχου

Μοντέρνα Θεωρία Ελέγχου

Transcript:

Συμβολικές Γλώσσες Προγραμματισμού Ενότητα 8: Συναρτησιακός Προγραμματισμός Νικόλαος Καραμπετάκης Τμήμα Μαθηματικών

Άδειες Χρήσης è Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. è Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Συμβολικές Γλώσσες Προγραμματισμού 2

Χρηματοδότηση è Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. è Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. è Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Συμβολικές Γλώσσες Προγραμματισμού 3

1. Εφαρμογή συναρτήσεων σε τιμές. 2. Επίπεδα μιας έκφρασης. 3. Οι εντολές Map και Through. 4. Η εντολή Apply. 5. Η εντολή Inner. 6. Η εντολή Outer. 7. Επαναλήψεις μέσω της Nest και Fold. Περιεχόμενα Συμβολικές Γλώσσες Προγραμματισμού 4

Σκοποί Ενότητας è Μελέτη του συναρτησιακού προγραμματισμού. Συμβολικές Γλώσσες Προγραμματισμού 5

ıì ÒÙÁÛÈ Í Ú ðòô Ò ÏÏ ÙÈÛÏ Ú Ã ÙÔÌ ÒÔ Î ÛÛ ÛıÌ ÒÙÁÛÈ ÍÔ ðòô Ò ÏÏ ÙÈÛÏÔ ÂÌÌÔÔ Ï ÙÁÌ Î ÛÛ ÛÙÁÌ ÔðÔfl ÛıÌ ÒÙfiÛÂÈÚ ÏðÔÒÔ Ì Ì ÔÒÈÛÙÔ Ì Í È Ì Âˆ ÒÏÔÛÙÔ Ì Û ÔÒflÛÏ Ù, Ù ÔðÔfl Ï ÙÁ ÛÂÈÒ ÙÔıÚ ÏðÔÒÂfl Ì ÂflÌ È Í È ıù ÛıÌ ÒÙfiÛÂÈÚ Í.Ô.Í. Συμβολικές Γλώσσες Προγραμματισμού 6

ˆ ÒÏÔ fi ÛıÌ ÒÙfiÛÂ Ì Û ÙÈÏ Ú ðflðâ ÏÈ Ú ÍˆÒ ÛÁÚ? TreeForm TreeForm expr prints with different levels in expr shown at different depths. «TreeForm Ï Ú flìâè Ù È ˆÔÒ Âðflð ÛÙ ÔðÔfl Ì Î ÂÙ È ÏÈ ÍˆÒ ÛÁ. TreeForm a + b 2 x+y Plus a, Power b, Times 2, Plus x, y Συμβολικές Γλώσσες Προγραμματισμού 7

TreeForm a b 2 x y Επίπεδα μιας έκφρασης (1) Plus a Power b Times 2 Plus x y Συμβολικές Γλώσσες Προγραμματισμού 8

ÙÔ ÂðflðÂ Ô 1 ÔıÏ Level a + b 2 x+y, 1 a, b 2 x+y ÙÔ ÂðflðÂ Ô 2 ÔıÏ Level a + b 2 x+y, 2 b, 2 x + y ÂÌ ÛÙ Âðflð 1 Í È 2 Level a + b 2 x+y,2 a, b, 2 x + y, b 2 x+y Í.Ô.Í. Επίπεδα μιας έκφρασης (2) Συμβολικές Γλώσσες Προγραμματισμού 9

Άσκηση 1.1 (Επίπεδα μιας έκφρασης) ÛÍÁÛÁ 1. ÒÔÛ ÈÔÒflÛÙ ÙÔ ÌÙÒÔ ÙÁÚ ÍˆÒ ÛÁÚ Í Ë Ú Í È Ù ÛÙÔÈ Âfl ÙÔı ÂðÈð Ôı 2. À ÛÁ ÛÍÁÛÁÚ x + y z-1 - z 2 TreeForm x + y z-1 - z 2 Plus Power Times Plus Plus -1 Power x y -1 z z 2 Συμβολικές Γλώσσες Προγραμματισμού 10

Άσκηση 1.2 (Επίπεδα μιας έκφρασης) Level x + y z-1 - z 2, 2 x + y, -1 + z, -1, z 2 Συμβολικές Γλώσσες Προγραμματισμού 11

Οι εντολές Map και Through (1)? Map «ÛıÌ ÒÙÁÛÁ Map ÛıÌfiË Ú ÛıÌÙ ÛÛÂÙ È Ï ÏÈ ÛıÌ ÒÙÁÛÁ ÛıÌÔ Âı ÏÂÌÁ ð ÏÈ ÎflÛÙ. «Map ˆ ÒÏ ÊÂÈ ÙÁÌ ÛıÌ ÒÙÁÛÁ f ÛÂ Í Ë ÛÙÔÈ ÂflÔ ÙÁÚ ÎflÛÙ Ú expr. Map Cos, 0, Pi 4, Pi 3, Pi 2 1, 1 2, 1 2,0 Ò ÙÁÒfiÛÙ ÙÈ ÂÌ Ò ˆ f[x] ÎÎ ÛÍ ÙÔ f. «ÎflÛÙ expr ÏðÔÒÂfl Ì ÌÙÈÍ Ù ÛÙ ËÂfl Í È ð ÏÈ ÍˆÒ ÛÁ ð Ú a + b 2 x +y : Map Cos, a + b 2 x+y, 1 Cos a + Cos b 2 x+y Συμβολικές Γλώσσες Προγραμματισμού 12

Οι εντολές Map και Through (2) Ôð Ù Á Map ˆ ÒÏ ÊÂÈ ÙÁÌ ÛıÌ ÒÙÁÛÁ ÛÙÔ ÂðflðÂ Ô 1 ÙÁÚ ÍˆÒ ÛÁÚ fi Map Cos, a + b 2 x+y, 2 Cos 2 x+y a + Cos b ðôı ˆ ÒÏ ÊÂÈ ÙÁÌ ÛıÌ ÒÙÁÛÁ ÛÙÔ ÂðflðÂ Ô 2 ÙÁÚ ÍˆÒ ÛÁÚ fi Map Cos, a + b 2 x+y, 3 Cos 2 Cos x+y a + b ðôı ˆ ÒÏ ÊÂÈ ÙÁÌ ÛıÌ ÒÙÁÛÁ ÛÙÔ ÂðflðÂ Ô 2 ÙÁÚ ÍˆÒ ÛÁÚ. Ò Í Ù Î ðôıïâ ÙÔ Ì ÒÔ ÙÁÚ ÍˆÒ ÛÁÚ Συμβολικές Γλώσσες Προγραμματισμού 13

TreeForm a + b 2 x+y Οι εντολές Map και Through (3) Plus a Power b Times 2 Plus x y Συμβολικές Γλώσσες Προγραμματισμού 14

Οι εντολές Map και Through (4) «Map ÏðÔÒÂfl Ì Âˆ ÒÏÔÛËÂfl ÛÂ Í Ë ıðô ÍˆÒ ÛÁ ÙÁÚ a b 2 x y MapAll Cos, a + b 2 x+y Cos Cos a + Cos Cos b Cos Cos 2 Cos Cos x +Cos y Συμβολικές Γλώσσες Προγραμματισμού 15

Οι εντολές Map και Through (5) Ì Ë Î ÌÙflËÂÙ ð ÙÁÌ Map Ì Âˆ ÒÏ Û ð Ò ð Ì ð ÏÈ ÛıÌ ÒÙfiÛÂÈÚ Û ÏÈ ÙÈÏfi Through Sin, Cos, Tan Pi 2 1, 0, ComplexInfinity? Through Through p Subscript f, 1, Subscript f, 2 x gives p Subscript f, 1 x, Subscript f, 2 x.through expr, h performs the transformation wherever h occurs in the head of expr. ƒâú ÂðflÛÁÚ MapAt, MapThread, MapIndexed Συμβολικές Γλώσσες Προγραμματισμού 16

Άσκηση 2.1 (Οι εντολές Map και Through) ÛÍÁÛÁ 2. ) «ÂÌÙÔÎfi CharactersRange Ï Ú ÔÁË ÂÈ ÛÙÔ Ì ÁÏÈÔıÒ fiûôıïâ ÏÈ ÎflÛÙ ÏÂ Ù Ò ÏÏ Ù ÙÔı ÎÈÍÔ Îˆ fiùôı. ƒáïèôıò fiûùâ ÏÈ ÎflÛÙ a Ï ÎÔıÚ ÙÔıÚ Ò ÍÙfiÒÂÚ ÙÔı ÎÈÍÔ Îˆ fiùôı. ) àÙÁ ÔfiËÂÈ ÙÁÚ Map Í È ÙÁÚ ToCharacterCode Ì ıðôîô flûâùâ ÙÔıÚ Í ÈÍÔ Ú ÒÈËÏÔ Ú ASCII Ù Ì ð Ò ð Ì Ò ÏÏ Ù Ì. ) ÙÁ ÛıÌ ÂÈ Ì ÔÒflÛÂÙ ÙÁÌ ÛıÌ ÒÙÁÛÁ f(x)=[[5x+4]mod26]+65 Í È Ì ÙÁÌ Âˆ ÒÏ ÛÂÙ ÛÙ ÛÙÔÈ Âfl ÙÁÚ ÙÂÎÂıÙ fl Ú ÎflÛÙ Ú. ) ÎÔÚ Ì ÏÂÙ ÙÒ ÂÙ ÙÔıÚ ÒÈËÏÔ Ú ðôı ðòô Íı Ì ÛÂ Ò ÍÙfiÒÂÚ Ï ÒfiÛÁ ÙÁÚ ÛıÌ ÒÙÁÛÁÚ FromCharacterCode. Συμβολικές Γλώσσες Προγραμματισμού 17

Άσκηση 2.2 (Οι εντολές Map και Through) a = CharacterRange "A", "Z" A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z a = Map ToCharacterCode, a 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 Í È Ì ÒÁÛÈÏÔðÔÈfiÛÔıÏÂ ÙÁÌ Flatten f x_ := Mod 5 x+ 4, 26 + 65 a = Map f, a 82, 87, 66, 71, 76, 81, 86, 65, 70, 75, 80, 85, 90, 69, 74, 79, 84, 89, 68, 73, 78, 83, 88, 67, 72, 77 Συμβολικές Γλώσσες Προγραμματισμού 18

Άσκηση 2.3 (Οι εντολές Map και Through) a = Map FromCharacterCode, a R, W, B, G, L, Q, V, A, F, K, P, U, Z, E, J, O, T, Y, D, I, N, S, X, C, H, M ıìôðùèí Ë ÏðÔÒÔ Û ÏÂ Ì Ò ÔıÏÂ Map FromCharacterCode, Map Mod 5 1 4, 26 65 &, Map ToCharacterCode, CharacterRange "A", "Z" R, W, B, G, L, Q, V, A, F, K, P, U, Z, E, J, O, T, Y, D, I, N, S, X, C, H, M Map FromCharacterCode, Map Function x, Mod 5 x 4, 26 65, Map ToCharacterCode, CharacterRange "A", "Z" R, W, B, G, L, Q, V, A, F, K, P, U, Z, E, J, O, T, Y, D, I, N, S, X, C, H, M Συμβολικές Γλώσσες Προγραμματισμού 19

Η εντολή Apply (1)? Apply «Apply ÌÙÈÍ ËÈÛÙ ÙÁÌ Íˆ Îfi ÙÁÚ ÍˆÒ ÛÁÚ expr Ï ÙÁÌ ÛıÌ ÒÙÁÛÁ f. «Íˆ Îfi ÙÁÚ ÍˆÒ ÛÁÚ x+y ÂflÌ È Head x + y + z Plus Á ÔðÔfl ÏðÔÒÂfl Ì ÌÙÈÍ Ù ÛÙ ËÂfl Ï ÙÁÌ Times ð Ú ˆ flìâù È ð Ò Í Ù Apply Times, x + y + z xyz Συμβολικές Γλώσσες Προγραμματισμού 20

Η εντολή Apply (2) Αν θέλουμε να υπολογίσουμε το άθροισμα 1+2+3+...+10, πρώτα δημιουργούμε την λίστα Table i, i, 1, 10 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 και στη συνέχεια εφαρμόζουμε την Apply με πρώτο όρισμα το Plus Apply Plus, 55 ή αν θέλουμε να υπολογίσουμε το 10!=1*2*3*...*10 όμοια έχουμε Apply Times, Table i, i, 1, 10 3 628 800 Συμβολικές Γλώσσες Προγραμματισμού 21

Η εντολή Apply (3) Ú Ô ÏÂ Í È Ì ð Ò ÂÈ Ï Ï ðâòèûû ÙÂÒ Âðflð FullForm x + y 2 z-1 Plus x, Power y, Times 2, Plus -1, z Apply Plus, x + y 2 z-1, 1 x + y + 2-1 + z Συμβολικές Γλώσσες Προγραμματισμού 22

Η εντολή Apply (4) TreeForm x + y 2 z-1 Plus x Power y Times 2 Plus -1 z Συμβολικές Γλώσσες Προγραμματισμού 23

Η εντολή Apply (5) ÛÍÁÛÁ. Õ ÁÏÈÔıÒ fiûâùâ ÏÈ ÎflÛÙ ÏÂ ÙÔıÚ 10 ðò ÙÔıÚ ÒÈËÏÔ Ú. ÙÁ ÛıÌ ÂÈ Í ÌÔÌÙ Ú ÒfiÛÁ ÙÁÚ Apply Ì ıðôîô flûâùâ ÙÔ ËÒÔÈÛÏ Ù Ì ÒÈËÏ Ì ıù Ì. a = Table Prime i, i, 1, 10 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 Apply Plus, a 129 fi Ì ÛıÌË Û ÙÈÚ Ô ÛıÌ ÒÙfiÛÂÈÚ Apply Plus, Table Prime i, i, 1, 10 129 Συμβολικές Γλώσσες Προγραμματισμού 24

Η εντολή Dot - Η εντολή Inner? Dot a.b.c or Dot a, b, c gives products of vectors, matrices and tensors. Dot x, y, z, w wy+ xz «Dot ð Ú Î ðôıïâ ð Ò Í Ù Ï Ú flìâè ÙÔ ÂÛ ÙÂÒÈÍ ÈÌ ÏÂÌÔ Ô È ÌıÛÏ Ù Ì. ÔÎÎ ðî ÛÈ ÊÂÈ ÁÎ fi ÙÈÚ ÌÙflÛÙÔÈ ÂÚ ÛıÌÙÂÙ Ï ÌÂÚ Í È ÛÙÁÌ ÛıÌ ÂÈ ÙÈÚ ðòôûë ÙÂÈ. Ì ÌÙfl È ÙÔÌ ðôîî ðî ÛÈ ÛÏ Í È ÙÁÌ ðò ÛËÂÛÁ Ë Î ÏÂ Ô ÎÎÂÚ ðò ÓÂÈÚ ÔÈ ÔðÔflÂÚ ÁÎ ÌÔÌÙ È Ï Û ÛıÌ ÒÙfiÛÂ Ì f Í È g Ë Âfl ÏÂ ÙÁÌ ÛıÌ ÒÙÁÛÁ Inner? Inner Inner f, Subscript list, 1, Subscript list, 2, g is a generalization of Dot in which f plays the role of multiplication and g of addition. Συμβολικές Γλώσσες Προγραμματισμού 25

Η εντολή Inner Inner f, x, y, z, w, g g f x, z, f y, w «ð Ò Í Ù ÂÌÙÔÎfi ÂflÌ È ÏÔÈ ÏÂ ÙÁÌ Dot Inner Times, x, y, z, w, Plus wy+ xz «ð Ò Í Ù ðò ÓÁ ËıÏflÊÂÈ ðôîî ðî ÛÈ ÛÏ ðèì Í Ì, Ï ÌÔ ðôı Ô ðôîî ðî ÛÈ ÛÏ Ú ÂÈ ÌÙÈÍ Ù ÛÙ ËÂfl ð ÙÁÌ f Í È Á ðò ÛËÂÛÁ ð ÙÁÌ g. Inner f, x11, x12, x21, x22, y11, y12, y21, y22, g MatrixForm g f x11, y11, f x12, y21 g f x11, y12, f x12, y22 g f x21, y11, f x22, y21 g f x21, y12, f x22, y22 Συμβολικές Γλώσσες Προγραμματισμού 26

Άσκηση 3.1 ÛÍÁÛÁ 3. Õ ÔÒflÛÂÙÂ ÙÁÌ ÛıÌ ÒÙÁÛÁ g È ÙÁÌ ðò ÛËÂÛÁ Ô ı ÈÍ Ì ÏÂÙ ÎÁÙ Ì {0+0=0,0+1=1,1+0=0,1+1=1} Í È ÙÁÌ ÛıÌ ÒÙÁÛÁ f È ÙÔÌ ðôîî ðî ÛÈ ÛÏ ı ÈÍ Ì ÏÂÙ ÎÁÙ Ì {0*0=0,0*1=0,1*0=0,1*1=1} Í È ÛÙÁ ÛıÌ ÂÈ Ì ıðôîô flûâùâ ÏÂ ÙÁÌ ÔfiËÂÈ ÙÁÚ Inner ÙÔ ÈÌ ÏÂÌÔ Ô ı ÈÍ Ì ðèì Í Ì. f x_, y_ := Switch x, y, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1 Συμβολικές Γλώσσες Προγραμματισμού 27

Άσκηση 3.2 g x_, y_ := Switch x, y, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1 Inner f, 0, 1, 1, 0, 1, 1, 0, 0, g MatrixForm 0 0 1 1 fi Ù ð Ò ð Ì ÏðÔÒ Ì Ù ÛıÌÔ flû ÛÂ ÏÈ ÛıÌ ÒÙÁÛÁ Συμβολικές Γλώσσες Προγραμματισμού 28

Άσκηση 3.3 matrixproduct x_, y_ := Inner Function x1, y1, Switch x1, y1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, x, y, Function z1, w1, Switch z1, w1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1 MatrixForm matrixproduct 0, 1, 1, 0, 1, 1, 0, 0 0 0 1 1 Συμβολικές Γλώσσες Προγραμματισμού 29

Η εντολή Outer (1)? Outer «Outer ðôùâîâfl ÏÈ ÂÌflÍÂıÛÁ ÙÁÚ Map È ÛıÌ ÒÙfiÛÂÈÚ Ï ðâòèûû ÙÂÒÂÚ ð ÏÈ ÏÂÙ ÎÁÙ Ú, ð flòìâè ÁÎ fi ÎÔıÚ ÙÔıÚ ıì ÙÔ Ú ÛıÌ ı ÛÏÔ Ú Ù Ì Ô ÎÈÛÙ Ì ð ÙÈÚ ÔðÔflÂÚ ÛıÌÔ Â ÂÙ È Í È Âˆ ÒÏ ÊÂÈ ÙÁÌ ÛıÌ ÒÙÁÛÁ f ÛÙ ÔÒflÛÏ Ù ðôı ðòôí ðùôıì. Clear f, a, b, c, d Outer f, a, b, c, d f a, c, f a, d, f b, c, f b, d Συμβολικές Γλώσσες Προγραμματισμού 30

Outer Integrate, Cos x, Sin y, x, y Sin x, y Cos x, x Sin y, -Cos y Η εντολή Outer (2) ÛÍÁÛÁ. Õ Âˆ ÒÏ ÛÂÙ ÙÁÌ Outer ÛÙÁÌ ÛıÌ ÒÙÁÛÁ ÙÁÚ ð Ò Ôı È ÏÈ ÛıÌ ÒÙÁÛÁ ÏÂ Ô ÏÂÙ ÎÁÙ Ú ð.. f x, y = x 2 + y 2, Outer D, x 2 + y 2,x 2 - y 2, x, y 2x,2y, 2x,-2y Άν ψάχναμε τον Hessian πίνακα της συνάρτησης x^2+y^2 τότε θα ακολουθούσαμε την παρακάτω μέθοδο Outer D, x 2 y 2, x, y Συμβολικές Γλώσσες Προγραμματισμού 31

Η εντολή Outer (3) Outer D, 2 x,2y, x, y 2, 0, 0, 2 ή ισοδύναμα Outer D, Outer D, x 2 y 2, x, y 1, x, y 2, 0, 0, 2 Συμβολικές Γλώσσες Προγραμματισμού 32

Επαναλήψεις μέσω της Nest και Fold (1)? Nest Nest Cos, Pi 2, 2 1 ÙÁÌ ð Ò ð Ì ðò Ù ÛÁ ðò Ù ıðôîô flêâù È ÙÔ Cos[Pi/2]->0 Í È ÛÙÁ ÛıÌ ÂÈ ıðôîô flêâù È ÙÔ Cos[0]->1 ÁÎ. Cos[Cos[Pi/2]]. «Nest ÎÔÈð Ì Âˆ ÒÏ ÊÂÈ ÙÁÌ ÛıÌ ÒÙÁÛÁ f, n ˆÔÒ Ú ÛÙÁÌ ÍˆÒ ÛÁ expr. «Nest ÂflÌ È ðôî ÒfiÛÈÏÁ ÛÙÈÚ Ì ÒÔÏÈÍ Ú ÍÔÎÔıËflÂÚ. Ú ıðôë ÛÔıÏ ÙÈ ÔıÏÂ Ì ıðôîô flûôıïâ ÙÔÌ 5Ô ÒÔ ÙÁÚ ÍÔÎÔıËfl Ú a n = 1 2 * a n-1 + 2 a n-1,a 0 = 1 «ð Ò ð Ì Ì ÒÔÏÈÍfi ÍÔÎÔıËfl ðôùâîâfl ÙÔÌ Ù ðô ÙÔı Newton È ÙÔÌ ıðôîô ÈÛÏ ÙÁÚ ÒflÊ Ú ÙÔı 2. Συμβολικές Γλώσσες Προγραμματισμού 33

Επαναλήψεις μέσω της Nest και Fold (2) f x_ := 1 2 * x + 2 x Nest f, 1, 5 N 1.41421 Ì Ë ÎÔıÏ ÏðÔÒÔ ÏÂ Ì Ô ÏÂ Í È ÎÔıÚ ÙÔıÚ ÂÌ È ÏÂÛ ÒÔıÚ ÙÁÚ ÍÔÎÔıËfl Ú Ï ÙÁÌ NestList NestList f, 1, 5 N 1., 1.5, 1.41667, 1.41422, 1.41421, 1.41421 œ ÂÌÈÍ Ú Ù ðôú ÙÁÚ ðòôû ÈÛÁÚ ÒflÊ Ú ÏÈ Ú ÛıÌ ÒÙÁÛÁÚ f ÂflÌ È x n = x n-1 - f x n-1 f' x n-1 Συμβολικές Γλώσσες Προγραμματισμού 34

Επαναλήψεις μέσω της Nest και Fold (3) ıìâð Ú Ë ÏðÔÒÔ Û ÏÂ Ì ÔıÏÂ f x_ := x 2-5x+ 6 g x_ := x - f x f' x NestList g, 1, 5 N 1., 1.66667, 1.93333, 1.99608, 1.99998, 2. NestList g, 3, 5 N 3., 3., 3., 3., 3., 3. Συμβολικές Γλώσσες Προγραμματισμού 35

Επαναλήψεις μέσω της Nest και Fold (4) Ì ð ÎÈ Ë ÎÔıÏÂ Ì Âˆ ÒÏ ÛÔıÏ ÙÁÌ Nest Ú ÙÔı Âð ÎËÂÈ Û ÍÎÈÛÁ Ë ÒÁÛÈÏÔðÔÈfiÛÔıÏ ÙÁÌ FixedPoint FixedPoint g, 3 3 ðôı Ë ÏðÔÒÔ ÛÂ Ì flìâè ð Ò ÏÔÈ Ï ÙÁÌ ÂÓfiÚ ÂÌÙÔÎfi k = 2; While Abs Nest g, 1, k - Nest g, 1, k - 1 > E -12,k= k + 1 ; Nest g, 3, k 3 Συμβολικές Γλώσσες Προγραμματισμού 36

Άσκηση 4.1 ÛÍÁÛÁ 4. ÒÔÛð ËfiÛÙÂ Ì ıðôîô flûâùâ ÙÔÌ 20Ô ÒÔ ÙÁÚ ÍÔÎÔıËfl Ú fi F 0 = 0, F 1 = 1, F n = F n-1 + F n-2 F n+2 = 1 1 F n+1 1 0 À ÛÁ ÛÍÁÛÁÚ. F n+1 F n, F 1 F 0 = 1 0 f x_ := 1, 1, 1, 0.x Nest f, 1, 0, 20 2 6765 Συμβολικές Γλώσσες Προγραμματισμού 37

Άσκηση 4.2 Fibonacci 20 6765» ÏðÔÒÔ Û ÏÂ Ì Ò ÔıÏÂ Í È ÛıÌ ÒÙÁÛÁ È ÙÔÌ ıðôîô ÈÛÏ ÙÔı n-ôûùô ÒÔı Fibonacci fibonacci n_integer := Nest Function x, 1, 1, 1, 0.x, 1, 0, n 2, 1 fibonacci 20 6765 fi ÎÎÈ Ú Συμβολικές Γλώσσες Προγραμματισμού 38

Άσκηση 4.3 g x_, y_ := x + y, x Nest g, 1, 0, 20 2 6765 g1 n_integer := Nest Function x, x 1 + x 2, x 1, 1, 0, n 2, 1 g1 20 6765 Συμβολικές Γλώσσες Προγραμματισμού 39

ÎÎÔÚ ÙÒ ðôú Ï Û È ÈÍ ÛÈ ÍÔ ðòô Ò ÏÏ ÙÈÛÏÔ Άσκηση 4.4 fibon n_integer := s1 = 1; s2 = 1; Do s = s1 + s2; s2 = s1; s1 = s, i, 1, n - 2 ; s fibon 20 6765 Συμβολικές Γλώσσες Προγραμματισμού 40

Άσκηση 4.5 ÍÒÈÛÁ Ò Ì Ì Timing fibonacci 1000 0.03125, 43 466 557 686 937 456 435 688 527 675 040 625 802 564 660 517371 780 402 481 729 089 536 555Ö 417 949 051890 403 879 840 079 255 169295 922 593 080 322 634 775 209 689 623 239 873 322Ö 471 161642 996 440 906 533 187938 298 969 649 928 516003 704 476 137 795 166849 228 875 Timing g1 1000 0.015625, 43 466 557 686 937 456 435 688 527 675 040 625 802 564 660 517371 780 402 481 729 089 536 555Ö 417 949 051890 403 879 840 079 255 169295 922 593 080 322 634 775 209 689 623 239 873 322Ö 471 161642 996 440 906 533 187938 298 969 649 928 516003 704 476 137 795 166849 228 875 Συμβολικές Γλώσσες Προγραμματισμού 41

Άσκηση 4.6 Timing Fibonacci 1000 0., 43 466 557 686 937 456 435 688 527 675 040625 802 564 660 517371 780 402 481 729089 536 555Ö 417 949 051890 403 879 840 079 255 169295 922 593 080 322 634 775 209 689 623 239 873 322Ö 471 161642 996 440 906 533 187938 298 969 649 928 516003 704 476 137 795 166849 228 875 Timing fibon 1000 0., 43 466 557 686 937 456 435 688 527 675 040 625 802 564 660 517371 780 402 481 729 089 536 555Ö 417 949 051890 403 879 840 079 255 169295 922 593 080 322 634 775 209 689 623 239 873 322Ö 471 161642 996 440 906 533 187938 298 969 649 928 516003 704 476 137 795 166849 228 875 Συμβολικές Γλώσσες Προγραμματισμού 42

Η εντολή Fold (1)? Fold Fold f, x, list gives the last element of FoldList f, x, list. Ú Ô ÏÂ ÏÂ Ì ð Ò ÂÈ Ï ð Ú ÔıÎÂ ÂÈ Á Fold Fold f, a, b, c, d f f f a, b, c, d ÁÌ ÒÁÛÈÏÔðÔÈÔ ÏÂ È ÛıÌ ÒÙfiÛÂÈÚ ÏÂ Ô ÏÂÙ ÎÁÙ Ú. ƒ ÂÙ È ð Ú ˆ flìâù È ð Ò ð Ì ÏÈ Ò ÈÍfi ÙÈÏfi È ÙÔ x (a) ÙÁÚ ÛıÌ ÒÙÁÛÁÚ f[x,y] Í È ıðôîô flêâè ÙÔ f[a,b] ðôı b ÙÔ ðò ÙÔ ÛÙÔÈ ÂflÔ ÙÁÚ ÎflÛÙ Ú {b,c,d}. ÙÁ ÛıÌ ÂÈ ÙÔðÔËÂÙÂfl ÙÁÌ ÙÈÏfi ıùfi Ú ÒÈÛÏ È ÙÔ x Í È ÛıÌÂ flêâè ÏÂ Â ÙÂÒÁ ÙÈÏfi ÙÔı y ÙÁÌ c ðôı ÂflÌ È Á Â ÙÂÒÁ ÙÈÏfi ÙÁÚ ÎflÛÙ Ú f[f[a,b],c]. ÙÁ ÛıÌ ÂÈ ÙÔðÔËÂÙÂfl ÙÁÌ ÙÈÏfi ıùfi Ú ÒÈÛÏ È ÙÔ x Í È ÛıÌÂ flêâè ÏÂ ÙÒflÙÁ ÙÈÏfi ÙÔı y ÙÁÌ d ðôı ÂflÌ È Á ÙÒflÙÁ ÙÈÏfi ÙÁÚ ÎflÛÙ Ú f[f[f[a,b],c], d]. Συμβολικές Γλώσσες Προγραμματισμού 43

Η εντολή Fold (2) «ð Ò Í Ù ÛıÌ ÒÙÁÛÁ ıðôîô flêâè ÙÔ ËÒÔÈÛÏ 1+2+3+...+10 Fold Plus, 0, Range 10 55 «FoldList Ï Ú flìâè Ù ÂÌ È ÏÂÛ ðôùâî ÛÏ Ù FoldList Plus, 0, Range 10 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55 Συμβολικές Γλώσσες Προγραμματισμού 44

Άσκηση 5 ÛÍÁÛÁ 5. Õ ıðôîô flûâùâ ÙÔ Ï ÈÛÙÔ ÛÙÔÈ ÂflÔ ÙÁÚ ÎflÛÙ Ú x Í ÌÔÌÙ Ú ÒfiÛÁ Ù Ì ÛıÌ ÒÙfiÛÂ Ì Max, Fold. À ÛÁ ÙÁÚ ÛÍÁÛÁÚ f x_ := Fold Max, -Infinity, x f 2, 3, -9, 10 10 Συμβολικές Γλώσσες Προγραμματισμού 45

Παραδείγματα (1) ÛÍÁÛÁ 1. Õ flìâè Á Ò ˆÈÍfi ð Ò ÛÙ ÛÁ Ù Ì ðò Ù Ì ÒÈËÏ Ì ð 1-30. a = Table Prime i, i, 1, 30 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113 ListPlot a 100 80 60 40 20 5 10 15 20 25 30 Συμβολικές Γλώσσες Προγραμματισμού 46

Παραδείγματα (2) fi ListPlot Table Prime i, i, 1, 30 100 80 60 40 20 5 10 15 20 25 30 Συμβολικές Γλώσσες Προγραμματισμού 47

Παραδείγματα (3)» ÏðÔÒÔ Û ÏÂ Ï Ú Ì ð Ò ÎÂfl ÔıÏÂ ÙÁÌ ÏÂÙ ÎÁÙfi i ð Ú ˆ flìâù È ð Ò Í Ù Map Prime &, Range 30 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113 ListPlot % 100 80 60 40 20 5 10 15 20 25 30 Συμβολικές Γλώσσες Προγραμματισμού 48

Παραδείγματα (4) fi Ï Û ÏÈ Ú ÛıÌ ÒÙÁÛÁÚ ListPlot Map Prime &, Range 30 100 80 60 40 20 5 10 15 20 25 30 ıì ÒÙfiÛÂÈÚ ð Ú ÔÈ ð Ò ð Ì ÔÌÔÏ ÊÔÌÙ È one-liners Í È ðôùâîô ÌÙ È Ï ÌÔ ð ÛıÌ ÒÙfiÛÂÈÚ, ÛÙ ËÂÒ Ú ÎÎ Í È ÔÒflÛÏ Ù ðôı ÒflÛÍÔÌÙ È Ú ÔÒflÛÏ Ù ÛÂ ðâòflðù ÛÁ ÛıÌ ÒÙfiÛÂ Ì. ÙÁÌ ðò ÙÁ ðâòflðù ÛÁ ÂðflÎıÛÁÚ ÙÁÚ ð Ò ð Ì ÛÍÁÛÁÚ ÔıÏÂ ÙÁÌ ÂÓ ÒÙÁÛÁ ÙÁÚ ÂÌÙÔÎfiÚ ð ÙÁÌ ÏÂÙ ÎÁÙfi i ÛÂ ÌÙflËÂÛÁ ÏÂ ÙÁÌ ÙÂÎÂıÙ fl ÏÔÒˆfi ÂÌÙÔÎfiÚ. Συμβολικές Γλώσσες Προγραμματισμού 49

Παραδείγματα (5) ÛÍÁÛÁ 2. Õ Ò ˆÂfl ÛıÌ ÒÙÁÛÁ ðôı ıðôîô flêâè Ù Ò ÏÏ Ù ðôı Âψ ÌflÊÔÌÙ È ÛÂ Ì string Í Ë Ú Í È ÙÁÌ Ûı Ì ÙÁÙ ðôı Âψ ÌflÊÔÌÙ È. ÛÙ ÙÈ ÔıÏ ÙÔ string a = "Nikos Karampetakis" Nikos Karampetakis Ò ÏÏ Ù ð Ù ÔðÔfl ðôùâîâflù È ÒflÛÍÔÌÙ È ÛÙÁÌ ð Ò Í Ù ÎflÛÙ a = Characters a N,i,k,o,s,,K,a,r,a,m,p,e,t,a,k,i,s ÒÁÛÈÏÔðÔÈ ÌÙ Ú ÙÁÌ ÂÌÙÔÎfi Union ð flòìôıïâ Ù È ˆÔÒÂÙÈÍ Ò ÏÏ Ù ðôı Âψ ÌflÊÔÌÙ È ÛÙÁÌ ÎflÛÙ c = Union a,a,e,i,k,k,m,n,o,p,r,s,t Συμβολικές Γλώσσες Προγραμματισμού 50

Παραδείγματα (6) àÙÁÌ Count ÏðÔÒ Ì ıðôîô flû ð ÛÂÚ ˆÔÒ Ú Âψ ÌflÊÂÙ È Í ËÂ Ò ÏÏ ÛÙÁÌ ð Ò ð Ì ÎflÛÙ ð.. Count c, "a" 1 fi Í Î ÙÂÒ ð flòìôıïâ ÙÔ Ê ÔÚ ( Ò ÍÙfiÒ, ðîfiëôú ˆÔÒ Ì ðôı Âψ ÌflÛËÁÍÂ) "a", Count c, "a" a, 1 fi ÎÎÈ Ú, Count c, & "a" a, 1 Συμβολικές Γλώσσες Προγραμματισμού 51

Παραδείγματα (7) «Û ÌËÂÛÁ Ù Ì ð Ò ð Ì ÂÌÙÔÎ Ì Ï Ú Ô Á Âfl ÛÙÁÌ ÛıÌ ÒÙÁÛÁ (ÛÂ ÏÔÒˆfi one-liner) frequency list_ := Map, Count Characters list, &, Union Characters list frequency "Nikos Karampetakis",1, a, 3, e, 1, i, 2, k, 2, K, 1, m, 1, N, 1, o, 1, p, 1, r, 1, s, 2, t, 1 Συμβολικές Γλώσσες Προγραμματισμού 52

Ασκήσεις για σπίτι ÛÍÁÛÁ 1. Õ Ò ˆÂfl ÛıÌ ÒÙÁÛÁ ðôı Ë Í ÈÍÔðÔÈÂfl Ì string Û Ïˆ Ì Ï ÙÔÌ Ù ðô f(x)=[[5x+4]mod26]+65 ( ÂÚ ð Ò ÏÔÈ ÛÍÁÛÁ ÛÙÁÌ ÂÌ ÙÁÙ Ï ÙÁÌ ÂÌÙÔÎfi Map). ÒÁÛÈÏÔðÔflÁÛ ÙÁÌ ÂÌÙÔÎfi Characters ðôı ÂðÈÛÙÒ ˆÂÈ Ù Ò ÏÏ Ù ÂÌ Ú string Í Ë Ú Í È ÙÁÌ StringJoin ðôı ÛıÌ ÂÈ ÙÔıÚ Ò ÍÙfiÒÂÚ ÏÈ Ú ÎflÛÙ Ú. «ÛıÌ ÒÙÁÛÁ ÛÔı Ë ÂÙ È Ú ÒÈÛÏ ÙÔ string. ÛÍÁÛÁ 2. ÒÔÛð ËfiÛÙÂ Ì Î ÛÂÙ ÙÁÌ ÛÍÁÛÁ 2 ÙÁÚ ÙÂÎÂıÙ fl Ú ÂÌ ÙÁÙ Ú ÏÂ È ÈÍ ÛÈ Í ðòô Ò ÏÏ ÙÈÛÏ. ÛÍÁÛÁ 3. Õ Ò ˆÂfl ÛıÌ ÒÙÁÛÁ (one-liner) f[n_integer] ðôı Ë Í ÌÂÈ Ù ÂÓfiÚ: ) Ë ÁÏÈÔıÒ Âfl ÏÈ ÎflÛÙ a1 Ï ÙÔıÚ ˆıÛÈÍÔ Ú ÒÈËÏÔ Ú 1,2,3,...,n ) Ë ÁÏÈÔıÒ Âfl ÏÈ ÎflÛÙ a2 ðôı Ë ðâòè ÂÈ Ù ÛÙÔÈ Âfl ÙÁÚ a1 ÂÍÙ Ú ð ÙÔ 1Ô, 3Ô, 5Ô,...,2*[n/2]. ) Ë ÁÏÈÔıÒ Âfl ÏÈ ÎflÛÙ a3 ðôı Ë ðâòè ÂÈ Ù ÛÙÔÈ Âfl ÙÁÚ a2 ÂÍÙ Ú ð ÙÔ 1Ô, 3Ô, 5Ô,... ) Ë ÛıÌ flûâùâ ÙÁÌ È ÈÍ Ûfl ıùfi Â Ú ÙÔı ð ÒÂÙ ÏÈ ÎflÛÙ ÏÂ Ì Ï ÌÔ ÛÙÔÈ ÂflÔ. Συμβολικές Γλώσσες Προγραμματισμού 53

Σημείωμα Αναφοράς Copyright Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Νικόλαος Καραμπετάκης. «Συμβολικές Γλώσσες Προγραμματισμού. Ενότητα 8: Συναρτησιακός προγραμματισμός». Έκδοση: 1.0. Θεσσαλονίκη 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http: eclass.auth.gr courses OCRS430 Συμβολικές Γλώσσες Προγραμματισμού 54

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Παρόμοια Διανομή [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http: creativecommons.org licenses by sa 4.0 Συμβολικές Γλώσσες Προγραμματισμού 55

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: è το Σημείωμα Αναφοράς è το Σημείωμα Αδειοδότησης è τη δήλωση Διατήρησης Σημειωμάτων è το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Συμβολικές Γλώσσες Προγραμματισμού 56

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος ενότητας Επεξεργασία: Αναστασία Γ. Γρηγοριάδου Θεσσαλονίκη, Εαρινό εξάμηνο 2014-2015