From 29933c5087a55999db7257bf767952803c3b344e Mon Sep 17 00:00:00 2001
From: "joel.vonderwe" <joel.von-der-weid@etu.hesge.ch>
Date: Thu, 20 Feb 2020 15:58:07 +0100
Subject: [PATCH] Changed Predicate type

---
 base_tp/src/lambda/lambda.scala | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/base_tp/src/lambda/lambda.scala b/base_tp/src/lambda/lambda.scala
index 29b38b5..4582d02 100644
--- a/base_tp/src/lambda/lambda.scala
+++ b/base_tp/src/lambda/lambda.scala
@@ -12,7 +12,7 @@ object Predicates {
    * La méthode 'not' retourne un nouveau prédicat dont le résultat
    * est toujours la négation du résultat de l'argument.
    */
-  def not[A]( p: (A)=>Boolean ): (A)=>Boolean = { (a:A) =>
+  def not[A]( p: P[A] ): P[A] = { (a:A) =>
     !p(a)
   }
 
@@ -20,7 +20,7 @@ object Predicates {
    * La méthode 'and' retourne un nouveau prédicat dont le résultat
    * est toujours la conjonction des résultats des deux arguments.
    */
-  def and[A]( p1: (A)=>Boolean, p2: (A)=>Boolean ): (A)=>Boolean = { (a:A) =>
+  def and[A]( p1: P[A], p2: P[A] ): P[A] = { (a:A) =>
     p1(a) && p2(a)
   }
 
@@ -28,7 +28,7 @@ object Predicates {
    * La fonction 'or' retourne un nouveau prédicat dont le résultat
    * est toujours la disjonction des résultats des deux arguments.
    */
-  def or[A]( p1: (A)=>Boolean, p2: (A)=>Boolean ): (A)=>Boolean = { (a:A) =>
+  def or[A]( p1: P[A], p2: P[A] ): P[A] = { (a:A) =>
     p1(a) || p2(a)
   }
 
@@ -37,7 +37,7 @@ object Predicates {
    * résultat est vrai si au moins un des prédicat de l'argument est
    * vrai.
    */
-  def exists[A]( ps: List[(A)=>Boolean] ): (A)=>Boolean = { (a:A) =>
+  def exists[A]( ps: List[P[A]] ): P[A] = { (a:A) =>
     ps match {
         case p :: Nil => p(a)
         case p :: _ if p(a) => true
@@ -50,7 +50,7 @@ object Predicates {
    * résultat est vrai si et seulement si tous les prédicats de
    * l'argument sont vrais.
    */
-  def forall[A]( ps: List[(A)=>Boolean] ): (A)=>Boolean = { (a:A) =>
+  def forall[A]( ps: List[P[A]] ): P[A] = { (a:A) =>
     ps match {
         case p :: Nil => p(a)
         case p :: _ if !p(a) => false
-- 
GitLab