Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. If there is no field inside Record Token, it will add it into Record Token

    Code Block
    { a = 1 } -> inputRecord -+
                              |
                               >- { a = 1, b = 2 }
                              |
    2         -> b           -+                    // I am passing value 2 into port with the name b - new 
                                                   // entry inside record will be created
  2. If there is a field with given name inside Record Token, it will be replaced

    Code Block
    { a = 1, b = 1 } -> inputRecord -+
                                     |
                                      >- { a = 1, b = 2 }
                                     |
    2                -> b           -+             // I am passing value 2 into port with the name b - old 
                                                   // value will be replaced with new one
  3. If there is a field with given name inside Record Token, the type of field may change if you pass different type in the input

     

    Code Block
    { a = 1, b = 1 }  -> inputRecord -+
                                      |
                                       >- { a = 1, b = { c = 2 } }
                                      |
    { c = 2 }         -> b           -+            // I am passing record { c = 2 } into port b - old value 
                                                   // will be replaced with Record Token element (nested Record Token)
  4. You can modify nested Record Type values by separating names of elements with /. E.g. you can specify "a/b"

    Code Block
    { a = { b = 1} }  -> inputRecord -+
                                      |
                                       >- { a = 1,{ b = { c = 2 } }
                                      |
    2                 -> a/b         -+            // I am passing value 2 into port a/b - this time, I modify element a.b inside Record Token
                                                   // note that we have to use "/" in port name due to the fact Kepler 
                                                   // doesn't allow to use "." as name separator

...