Guest User

Untitled

a guest
Nov 20th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. const { log } = console
  2.  
  3. const differenceBetween = ( x, y ) => x - y
  4. const greater = ( x, y ) => ( x > y ) ? x : y
  5. const takeTheBiggestNumberFrom = ( list ) => list.sort( greater )[ 0 ]
  6.  
  7. const getFrom = ( list ) => ( {
  8. the: ( something ) => Math[ something ](...list ),
  9. yourValues: () => list.join( ', ' )
  10. } )
  11.  
  12. const maxAndMinNumbers = ( getFromList ) => [
  13. getFromList.the( 'max' ),
  14. getFromList.the( 'min' )
  15. ]
  16. const difference = ( fromList ) => differenceBetween(...maxAndMinNumbers( fromList ) )
  17.  
  18. const andShowTheResult = ( getFromList ) => `
  19. O maior entre os números ${ getFromList.yourValues() } é: ${ getFromList.the( 'max' ) }.
  20. A diferença entre o maior e o menor (${ getFromList.the( 'min' ) } ) é: ${ difference( getFromList ) }!`
  21.  
  22. const orShowTheErrorMessage = ( list ) => `
  23.  
  24. Verifique os números ${ list },
  25. o maior não pode ser 0!
  26. `
  27.  
  28. const showTheBiggestAndTheDifferenceFrom = (...list ) =>
  29. ( takeTheBiggestNumberFrom( list ) )
  30. ? andShowTheResult( getFrom( list ) )
  31. : orShowTheErrorMessage( list )
  32.  
  33. log( showTheBiggestAndTheDifferenceFrom( 0, -20 ) )
  34. log( showTheBiggestAndTheDifferenceFrom( 1, 1 ) )
  35. log( showTheBiggestAndTheDifferenceFrom( -10 ) )
  36. log( showTheBiggestAndTheDifferenceFrom( 20, -9 ) )
  37. log( showTheBiggestAndTheDifferenceFrom( 19, 9 ) )
  38. log( showTheBiggestAndTheDifferenceFrom( 19 ) )
  39. log( showTheBiggestAndTheDifferenceFrom( 19, 19 ) )
  40. log( showTheBiggestAndTheDifferenceFrom( 11, 13, 19 ) ) // 19
  41. log( showTheBiggestAndTheDifferenceFrom( 19, 13, 11 ) ) // 19
  42. log( showTheBiggestAndTheDifferenceFrom( 500, 666, 166 ) ) // 19
Add Comment
Please, Sign In to add comment