kat the language of calculations
play

Kat - the language of calculations Mikus Vanags Parameter - PowerPoint PPT Presentation

Kat - the language of calculations Mikus Vanags Parameter declaration explicitly function(x) {return x;} Parameter declaration implicitly function() {return x;} Solution without redundant x syntactic code parts 2 Parameter order in Order


  1. Kat - the language of calculations Mikus Vanags

  2. Parameter declaration explicitly function(x) {return x;} Parameter declaration implicitly function() {return x;} Solution without redundant x syntactic code parts 2

  3. Parameter order in Order in which parameters are parameters list used in function body are different Parameter declaration function(x, y) {return y - x;} explicitly Postfix form of Grace~ operator Parameter function() {return y~ - x;} declaration function() {return y - ~x;} implicitly Prefix form of Grace~ operator 3

  4. Simplest use case of implicit parameters: super calculator Lens focus � = � ∗ � � + � KatLang code: F=d*f/(f+d); d*f/(f+d) … … … 4

  5. Function parameters Function Function body list name Pseudo code: F = function(f, d) { return d*f/(f+d); }; d*~f/(f+d) f, d KatLang code: F … … 1 2 3 4 5 6 7 9 8 www.ilcalculus.org 5

  6. Kat calculator demonstration Drag me like Touch me like using modern old electronic smartphone! calculator! Windows Phone 8.1 standard calculator Il Calculus 1.3 Windows Phone 8.1 www.ilcalculus.org 6

  7. C# 3.0: Parameter declaration explicitly Lambda symbol people.Sort((x, y) => x.LastName.CompareTo(y.LastName)); Potential of implicit parameters (pseudo code C): Beginning of lambda expression people.Sort(func x.LastName.CompareTo(y.LastName)); Implicit parameter in canonical form 7

  8. Method reference Java 8.0 people.sort(comparing(Person::getLastName)); Potential of implicit parameters (pseudo code J): Beginning of lambda expression Method usage people.sort(comparing(func Person.getLastName)); Implicit parameter in anonymous form 8

  9. Swift let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] var reversed = sorted(names, { $0 > $1 } ) Shorthand argument name Potential of implicit parameters (pseudo code S): var reversed = sorted(names, { current > next } ) Implicit parameter in canonical form 9

  10. If You are interested in good abstractions in symbolic computation and programming languages, email to: m m m mikus ikus. ikus ikus . . .v v v vanags@logicsresearchcentre.com anags@logicsresearchcentre.com anags@logicsresearchcentre.com anags@logicsresearchcentre.com

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend