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

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

Δημοσ.

Καλησπέρα,

Να γραφτεί μια κλάση με όνομα Javaexercise. Η κλάση πρέπει να περιέχει
την εξής μεθόδο:

Μια δημόσια ορατή μέθοδο με όνομα abc που δέχεται ένα όρισμα
τύπου Function<Float, Float> με όνομα π.χ. defg και επιστρέφει
αποτέλεσμα τύπου Function<Float, Float>. Η συνάρτηση (lambda function)
που επιστρέφεται θα πρέπει να παρέχει την τιμή της defg διαιρεμένη
με 67.
 

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

Θέλεις να σου λύσουμε την άσκηση; Ποια ακριβώς είναι η ερώτηση.

Edit: "δημόσια ορατή μέθοδο" ... Έχω μαλώσει με καθηγητή στο Πανεπιστήμιο επειδή επέμενε στα ελληνικά.

Επεξ/σία από filip123go
Δημοσ.
14 λεπτά πριν, filip123go είπε

Θέλεις να σου λύσουμε την άσκηση; Ποια ακριβώς είναι η ερώτηση.

Edit: "δημόσια ορατή μέθοδο" ... Έχω μαλώσει με καθηγητή στο Πανεπιστήμιο επειδή επέμενε στα ελληνικά.

    public Function<Float, Float> abc(Function<Float, Float> defg) {
        Function<Float, Int> sss = (a) -> defg / 67;
        return sss;
    }

κάπως έτσι το σκεφτόμουν παρόλο που βγάζει λάθος ο compiler 

bad operand types for binary operator '/'
        Function<Float, Int> sss = (a) -> defg / 67;
                                                   ^
  first type:  Function<Float,Float>
  second type: int

έχεις κάτι στο μυαλό σου;

 

Δημοσ.

To "bad operand types for binary operator '/'" σου το πετάει γιατί στη διαίρεση περιμένει καποιον αριθμό, αλλα εσύ στέλνεις Function και δεν ξέρει πως να κάνει Function<Float, Float> / int

Γενικά είσαι σε καλό δρόμο.
Κάποια tips:
1. το Int (με κεφαλαίο I) είναι λάθος, μπορείς να πεις Function<Float, Integer>. Αλλά δεν το χρειάζεσαι εδώ. 
2. χρησιμοποίησε Function<Float, Float> αφού έτσι λέει και η εκφώνηση
3. στο  "... / 67" μπορείς να βάλεις ένα F στο τέλος "67F" για να κανεις το 67 Float
4. ψάξε να δεις την Function.compose πως λειτουργεί ή γενικά δες για Java Functional Composition 

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

Καλησπέρα, φίλε ! 

Έχω πολύ καιρό να γράψω ο,τιδήποτε σε Java, γι' αυτό λίγο ως πολύ με πιάνεις στον ύπνο. Οι εκφράσεις λάμδα εισήχθησαν στη Java απ' την 8η έκδοση και μετά, που άμα θυμάμαι καλά πρωτοβγήκε γύρο στις αρχές του 2014. Μάλιστα παρουσιάστηκαν και σε μία ημερίδα που έκανε η Oracle για τις νέες δυνατότητες της έκδοσης αυτής στην Αθήνα το Μάιο του ίδιου χρόνου. 
 Γενικά οι εκφράσεις λάμδα είναι μια προσπάθεια της Sun να εισάγει στη Java στοιχεία συναρτησιακού προγραμματισμού, σαν αυτά που υπάρχουν ας πούμε σε λιγότερο δημοφιλείς γλώσσες όπως η LISP. 
Παρακάτω γράφω μία τέτοια έκφραση που δέχεται ένα αριθμητικό όρισμα και τυπώνει το πηλίκο του διά 27. 

@FunctionalInterface
interface MyFunctionalInterface {
	    public int abc(int a);
}
public class JavaExercise {
	   public static void main(String args[]) {
        MyFunctionalInterface f = (num) -> num/27;
        System.out.println(f.abc(270));
    }
}
	

Ελπίζω λίγο να βοήθησα, 
Αφήστε λίγο τον προγραμματισμό τώρα τα Χριστούγεννα και φάτε ένα μελομακάρονο στην υγειά του Άσπρου Γάτου !!!
Φιλικά, 
Ο Άσπρος Γάτος
 

Επεξ/σία από White_Cat

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...