Συναρτησιακός Προγραμματισμός. Εισαγωγικές Έννοιες

Σχετικά έγγραφα
Αφαίρεση στον FP. Πολυμορφισμός Συναρτήσεις υψηλότερης τάξης Οκνηρός και Άπληστος Υπολογισμός

Ορισμός Συναρτήσεων στην ΜL

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Δομημένος Προγραμματισμός

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Κεφάλαιο 9 Συναρτησιακός προγραμματισμός Υπολογισμός με συναρτήσεις

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Συναρτησιακός Προγραμματισμός: γενικά (Ι) Ο καθαρός Συναρτησιακός Προγραμματισμός (FP) έχει τα εξής χαρακτηριστικά: Το βασικό εργαλείο είναι οι (μαθημ

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

turnin Lab2.hs

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Ανάπτυξη και Σχεδίαση Λογισμικού

άλγεβρα και αλγεβρική σκέψη μαρία καλδρυμίδου

Θέματα Προγραμματισμού Η/Υ

Στοιχειώδης προγραμματισμός σε C++

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Αντικειμενοστραφής Προγραμματισμός

Θέματα Μεταγλωττιστών

Δομημένος Προγραμματισμός

Διαδικασιακός Προγραμματισμός

ΑΕΠΠ Ερωτήσεις θεωρίας

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

n true false if t then t else t u t t b t emptylist cons t t t t λx.t u ::= head tail isempty

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΚΥΡΙΑ ΜΟΝΤΕΛΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Εισαγωγή στην Πληροφορική

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

ΗΥ-150. Προγραμματισμός

Τμήμα Πληροφορικής ΑΠΘ

ΗΥ-150. Προγραμματισμός

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Α2. Να αναφέρετε ονομαστικά: i) τα αλγοριθμικά κριτήρια ii) τους τρόπους αναπαράστασης αλγορίθμου. (μονάδες 10)

Δομημένος Προγραμματισμός (ΤΛ1006)

Εισαγωγή στη γλώσσα προγραμματισμού C++

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Pascal, απλοί τύποι, τελεστές και εκφράσεις

a = 10; a = k; int a,b,c; a = b = c = 10;

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

Εισαγωγή στη Γλώσσα ML. Juan Miró

Εισαγωγή στη Γλώσσα ML

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Προγραμματισμός Ι (ΗΥ120)

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1

ΚΕΦΑΛΑΙΟ 2: Δηλωτικός Προγραμματισμός

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Συναρτήσεις Θεωρία Ορισμοί - Παρατηρήσεις

Βασικές έννοιες προγραμματισμού

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Α. Ερωτήσεις Ανάπτυξης

Άθροισμα τριών ποσοτήτων (1/2)

Στοιχεία προτασιακής λογικής

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Κεφάλαιο 13 : Τύποι Δεδοµένων

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Δομημένος Προγραμματισμός (ΤΛ1006)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων


7. Βασικά στοιχεία προγραµµατισµού.

ΔΕΟ 13 - Ποσοτικές Μέθοδοι: Επιχειρησιακά Μαθηματικά. Κεφάλαιο 1: Συναρτήσεις μιας μεταβλητής

Προγραμματισμός Ι (ΗΥ120)

Διδάσκων: Παναγιώτης Ανδρέου

Outline. 4 Object-Oriented Programming

Προγραμματισμός Η/Υ (ΤΛ2007 )

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C»

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

Εφαρμογές της Λογικής στην Πληροφορική

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

άλγεβρα και αλγεβρική σκέψη στην πρώτη σχολική περίοδο (Νηπιαγωγείο Δημοτικό) μαρία καλδρυμίδου

HY340, 2009 Α. Σαββίδης Slide 2 / 143. HY340, 2009 Α. Σαββίδης Slide 3 / 143. HY340, 2009 Α. Σαββίδης Slide 4 / 143

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών.

Transcript:

Συναρτησιακός Προγραμματισμός Εισαγωγικές Έννοιες

Κίνητρο Οι συναρτησιακές γλώσσες προγραμματισμού προσφέρονται για «μαζικό» προγραμματισμό: Έχουν σαφείς μαθηματικές ιδιότητες που μπορούν να αξιοποιηθούν για να γίνεται τυπική επαλήθευση προγράμματος. Προσφέρονται για παράλληλο υπολογισμό. Προσφέρονται για επαναχρησιμοποίηση κώδικα ή ενσωμάτωση κώδικα. Απλό μοντέλο επικοινωνίας κατά τη διαδικασία του υπολογισμού. Δεν προϋποθέτουν συγκεκριμένη πλατφόρμα επεξεργασίας. Εν τέλει, προσφέρονται για την ανάπτυξη Αλγεβρας Προγραμμάτων.

Μερική από την ιστορία ΗαφετηρίαChurch (1930): lampda calculus. LISP, ISWIM, Scheme (LISP dialect), ML, Hope, SASL, ML (metalanguage), Hope, SML (ML+Hope), LML, Miranda, Haskell, SML γιατί είναι αμιγώς συναρτησιακή, και πρότυπο.

Συναρτησιακό Πρόγραμμα Ένα σύνολο εξισώσεων που περιγράφουν ιδιότητες αντικειμένων ή συσχετίζουν ποσότητες που μας ενδιαφέρουν. Δύο αναγνώσεις: Ως κανόνες υπολογισμού. Ως δηλώσεις (ορισμοί) ιδιοτήτων αντικειμένων Δύο χρήσεις: Παραγωγή αποτελέσματος Εκτελέσιμος έλεγχος ορθότητας προσδιορισμού

Συναρτήσεις στα μαθηματικά Μαθηματικά, η αντιστοίχιση τιμών που προέρχονται από συγκεκριμένα σύνολα (πεδία ορισμού), σε μια μοναδική τιμή ενός συγκεκριμένου συνόλου (πεδίο τιμών). double( n )= 2 x n double: N N. even( n ) = T if n divisible by 2 even: N {T, F}

Η εικόνα του ορίσματος μιας συνάρτησης είναι μοναδική. Πολλές διαφορετικές τιμές από το πεδίο ορισμού της συνάρτησης μπορεί να αντιστοιχίζονται στην ίδια τιμή στο πεδίο τιμών της. π.χ. Even Mια συνάρτηση είναι πλήρης αν αντιστοιχίζει κάθε τιμή του πεδίου ορισμού σε μια τιμή του πεδίου τιμών, αλλιώς είναι μερική.

Άλλες συναρτήσεις computer : keyboard strokes Screen sequences compiler : source programs object code streams problem_solver : problems solutions theorem_prover : logic sentences proofs salary: employees amounts of money capital : countries cities mother : people people religious_views: people religions vote : voters political parties lecture_day: courses weekdays

Oρισμός συνάρτησης Intensionally (δηλωτικά, έμμεσα, εννοιολογικά) Με κανόνα που περιγράφει το συσχετισμό του πεδίου τιμών με το πεδίο ορισμού π.χ. double ( n ) = 2 x n Περιγράφει τη διαδικασία με την οποία υπολογίζεται η εικόνα του ορίσματος. Extensionally (περιγραφικά, αναλυτικά, ρητά, συμπεριφορικά, γράφημα συνάρτησης) Ως σύνολοδιατεταγμένων ζευγών της μορφής (όρισμα, αποτέλεσμα) double = {(0,0), (1, 2), (2, 4), (3, 6), (4, 8),.} Δεν ασχολείται με την διαδικασία υπολογισμού, αλλά με τη συμπεριφορά της συνάρτησης όπως αυτή μπορεί να διαπιστωθεί εξωτερικά (τι συσχετίζει μετι). Στο FP εκμεταλλευόμαστε αυτή τη διπλή ανάγνωση των συναρτήσεων. Για τη χρήση μιας συνάρτησης ενδιαφέρει μόνο η συμπεριφορά της, όχι ο τρόπος υπολογισμού της Σύνθεση μεγάλων συστημάτων από συστατικά Επαναχρησιμοποίηση λογισμικού Αντικατάσταση λογισμικού Διαλειτουργικότητα λογισμικού Άλγεβρα προγραμμάτων!!!

Ισότητα συναρτήσεων Εστω f : A B και g: C D. Τότε f = g αν και μόνο αν Α = C και Β = D και έχουντοίδιογράφημα. (ας έχουν διαφορετικό δηλωτικό ορισμό /τρόπο υπολογισμού). Π.χ. double ( n ) = 2 x n, double : N N dpl ( n ) = n + n, dpl : N N Αυτό έχει εξαιρετικά ενδιαφέρουσες συνέπειες (άλγεβρα προγραμμάτων)

Σημειογραφία Για μια συνάρτηση f : A B f (a) = b f a = b διαγραμματικά a f b

Συναρτήσεις πολλαπλών ορισμάτων Μπορούν να ειδωθούν σαν συναρτήσεις ενός ορίσματος, το οποίο είναι δομημένο αντικείμενο. π.χ. Η πρόσθεση φυσικών αριθμών + : Ν x N N πεδίο ορισμού το σύνολο Ν x N που περιέχει δομημένα στοιχεία: διατεταγμένα ζεύγη Prefix/infix μορφή συνάρτησης 2 + 3 = + (2, 3) Γενικότερα μια συνάρτηση f : A1 x A2 x xan B δέχεται ως όρισμα τη διατεταγμένη πλειάδα (α1, α2,, αn) Διαγραμματική απεικόνιση συναρτήσεων πολλαπλών ορισμάτων, π.χ. +, x, or, and, string concat

Εκφράσεις και σύνθεση Μια έκφραση μπορεί να συνδυάζει πολλές συναρτήσεις, καθιστώντας το αποτέλεσμα της εφαρμογής μιας συνάρτησης, όρισμα για την εφαρμογή μιας άλλης συνάρτησης. π.χ. έκφραση even (45 x 30) συνθέτει τις συναρτήσεις even και x. Ο συνδυασμός συναρτήσεων μπορεί να ειδωθεί σαν καινούρια συνάρτηση. π.χ. evenprod (a, b) = even (a x b) Οποιοσδήποτε συνδυασμός συναρτήσεων περιγράφεται από μια έκφραση είναι σίγουρα συνάρτηση. διαγραμματική απεικόνιση σύνθεσης συναρτήσεων: έξοδος της μιας αποτελεί είσοδο στην άλλη

Σύνθεση και επικοινωνία κατά τον υπολογισμό: ηουσίατουfp Όλα τα αποτελέσματα που παράγονται σε επιμέρους υπολογισμούς, διαδίδονται σε άλλα μέρη του προγράμματος μόνο μέσω της εφαρμογής συναρτήσεων. Αντίθετα, οι διαδικαστικές γλώσσες προγραμματισμού χρησιμοποιούν καθολικές μεταβλητές μνήμης, το περιεχόμενο των οποίων ενημερώνεται και είναι προσβάσιμο από όλα τα μέρη του προγράμματος που χρειάζεται να ενημερωθούν. Αναφορική διαφάνεια (referential transparency) για τον καθορισμό του νοήματος μιας σύνθετης έκφρασης απαιτείται μόνο το νόημα των άμεσων συνιστωσών της. Δυο εκφράσεις είναι ισοδύναμες όταν έχουν ίδιο νόημα (τιμή), επομένως λόγω της αναφορικής διαφάνειας, μπορεί να αντικατασταθεί μια συνιστώσα σε μια έκφραση από μια ισοδύναμή της, χωρίς να επηρεαστεί το νόημα της έκφρασης. Μπορεί να αποδοθεί αναφορική διαφάνεια σε συναρτήσεις που γράφονται σε διαδικαστικές γλώσσες προγραμματισμού, αλλά με τίμημα την απόδοση συχνά αντιδιαισθητικού νοήματος στα προγράμματα. π.χησυνάρτησηdouble μπορεί να έχει εκτός από υπολογισμό τιμής μιας καθολικής μεταβλητής και παρενέργειατην εκτύπωση αποτελέσματος. Τότε double (3) + double (3) δεν είναι ίδιο με 2 * double (3)

Tύποι Δεδομένων : γιατί τους χρειαζόμαστε; Συνήθως ταξινομούμε τις διάφορες τιμές δεδομένων που μεταχειρίζεται ένα πρόγραμμα σε τύπους, ανάλογα με το πώς επιτρέπεται να χρησιμοποιούνται, και μετά ελέγχουμε κατά πόσο γίνεται ορθή χρήση των τύπων, προκειμένου να προλάβουμε και να διορθώσουμε λάθη στη χρήση δεδομένων, πριν την πραγματική εκτέλεση του προγράμματος. (automatic type checking) Οι περισσότερες γλώσσες προγραμματισμού εμπεριέχουν τύπους, και συναρτήσεις που ορίζουν πώς χρησιμοποιούνται σωστά αυτοί οι τύποι. int, bool, real etc. +, -, *, div ορίζονται με πεδίο ορισμού int x int, και όχι bool. even ορίζεται με πεδίο ορισμού int και πεδίο τιμών bool. Οι περισσότερες γλώσσες FP συμμερίζονται το πολυμορφικό σύστημα τύπων του Milner: σύνθετοι τύποι καινούριων δεδομένων μπορούν να ορισθούν με βάση τους τύπους των συνιστωσών τους, και υπάρχει μόνο περιορισμένος αριθμός πρωταρχικών τύπων, από τους οποίους ορίζονται όλοι οι άλλοι, με την εφαρμογή τελεστών.

Ένα σύστημα τύπων Πρωταρχικοί τύποι : int, bool, string Σταθερές : true, false είναι οι μόνες τιμές τύπου bool. Οι τιμές τύπου int είναι οι συνήθεις σταθερές ακεραίων,αλλά γράφουμε ~5 αντί για -5 για να μην συγχέεται το αρνητικό πρόσημο με τη συνάρτηση της αφαίρεσης. Οι τιμές για τον τύπο string είναι αλφαβητικές ακολουθίες μέσα σε.

Τελεστές (παραγωγής) τύπων : και x Όπου Τ1 και Τ2 είναι τύποι, τότε (Τ1 Τ2) είναι ο τύπος μιας συνάρτησης με πεδίο ορισμού Τ1 και πεδίο τιμών Τ2. η double έχει τύπο int int η even έχει τύπο int bool Mια πλειάδα έχει τύπο το καρτεσιανό γινόμενο των τύπων που συμμετέχουν σ αυτήν. Δηλαδή, αν Ε1 είναι έκφραση με τύπο Τ1, Ε2 έκφραση με τύπο Τ2,, και Εn έκφραση με τύπο Τn, τότε (Ε1,, Εn) είναι έκφραση τύπου Τ1 x T2 x xtn (3, true) έχει τύπο int x bool ((2, ab ), false, 6) έχει τύπο (int x string) x bool x int

Συνδυασμός τελεστών τύπων Οι τελεστές παραγωγής τύπων και x μπορούν να συνδυαστούν σε πιο σύνθετες εκφράσεις, προκειμένου να παραχθούν πιο σύνθετοι τύποι. Π.χ. ο τύπος της συνάρτησης που συνενώνει συμβολοσειρές (string concatenation) είναι string x string string Παρατηρήστε ότι οι τελεστές τύπων μπορούν να ειδωθούν ως συναρτήσεις με πεδίο ορισμού και τιμών το σύνολο των τύπων!

Κανόνας ορθής παραγωγής τύπων Αν E είναι μια έκφραση που περιγράφει μια συνάρτηση με τύπο T1 T2 και Ε είναι μια έκφραση που περιγράφει μια τιμή τύπου Τ1, τότε η εφαρμογή της Ε στην Ε (δηλαδή Ε(Ε ) ήε Ε ) είναι ορθού τύπου και θα έχει τύπο Τ2. Γράφουμε Ε:Τ για να δηλώσουμε ότι η Ε είναι ορθού τύπου Τ.

Παραγωγή ορθών τύπων (διαγραμματικά) Για εφαρμογή συνάρτησης E : T1 T 2, E': T1 E( E') : T 2 Για σχηματισμό πλειάδων E1: T1, E2 : T 2,..., En : Tn ( E1, E2,..., En) : T1xT 2x... xtn