Advertisement
LeonardoChiodi

Untitled

Dec 31st, 2023
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 2.55 KB | None | 0 0
  1. package src.main.scala.createSQLPackage
  2.  
  3. import cats._
  4. import cats.Applicative._
  5. import cats.syntax.all._
  6. import cats.syntax.functor._
  7. import cats.syntax.applicative._
  8. import cats.effect.{IO, Fiber}    //OK
  9. import cats.effect.kernel.Outcome //OK
  10. import cats.kernel.Monoid
  11. import cats.effect.syntax.all._
  12.  
  13. import cats.syntax.all._  //OK
  14. import cats.Applicative   //OK
  15. import cats.kernel.Semigroup  //OK
  16. import cats.kernel.Monoid   //OK
  17. //import cats.effect.IO;
  18.  
  19. import src.main.scala.computeMD5Package;
  20.  
  21. import cats.effect.unsafe.implicits.global
  22.  
  23. object createSQL {
  24.  
  25.   def setSQL(listaFibers : List[IO[Fiber[IO, Throwable, String]]],
  26.              timeMarkFiber : IO[Fiber[IO, Throwable, String]],
  27.              volume : IO[Int]) : IO[String] = {
  28.  
  29.  
  30.     val dummyIOstring : IO[String] = IO("");
  31.  
  32.  
  33.    //Sviluppo alcuni test
  34.    val listaTest : List[IO[String]] = List.empty[IO[String]] :+ IO("Primo") :+ IO("Secondo") :+ IO("Terzo");
  35.    val testTrasformazione : IO[String] => IO[String] = item => item;
  36.    val listaOut : IO[List[String]] = listaTest.traverse(testTrasformazione);
  37.  
  38.    //Ciò che devo fare ora, è trovare una funzione che faccia questa trasformazione:
  39.    //IO[List[String]] => IO[String]
  40.    def concatenaSQLstring(lista : List[String]) : String = {
  41.      val dummyOut : String = "dummyOutput";
  42.      return dummyOut;
  43.    }
  44.    val concatenaSQLstringValue : List[String] => String = item => concatenaSQLstring(item);
  45.    val outApplicative : IO[List[String] => String] = IO(concatenaSQLstringValue);
  46.    //val outSQLString : IO[String] = listaOut.ap(outApplicative);
  47.    val outSQLString : IO[String] = cats.Applicative.ap(outApplicative)(listaOut);   //<- QUI SOLLEVA ERRORE
  48.  
  49.  
  50.  
  51.    val listaTest2 : List[String] = List.empty[String] :+ "Uno" :+ "Due" :+ "Tre";
  52.    val foldOut = listaTest2.foldLeft(Monoid.empty[String])((accumulatore : String,
  53.                                                             iteratore : String) => {
  54.                                                                                     accumulatore.
  55.                                                                                     combine("-").
  56.                                                                                     combine(iteratore)
  57.                                                                                    }
  58.                                                           );
  59.    println("Sono nella create string. la foldOut vale: " + foldOut.toString);
  60.  
  61.  
  62.     return dummyIOstring;
  63.  
  64.   }//Chiude la def setSQL
  65.  
  66. }//Chiude la object createSQL
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement