val i = Val[Int]
val hello = ScalaTask("i = i * 2") set (
inputs += i,
outputs += i
)
val exploration = ExplorationTask(i in (0 to 9))
val h = ToStringHook()
exploration -< (hello hook h)val i = Val[Int]
val hello = ScalaTask("val i = 2") set (
outputs += i
)
val h1 = ToStringHook()
val h2 = ToStringHook()
val h3 = ToStringHook()
(hello hook (h1, h2, h3))val h = AppendToFileHook("/path/of/the/file.txt", "string ${i} to append")Append a file to another file
Use the AppendFileFileHook as well.val file = Val[File]
val h = AppendToFileHook("${file.content}", "/path/of/the/file")val i = Val[Int]
val h = CSVHook("/path/to/a/file/or/dir${i}.csv")set on the newly created Hook.
    csvHeader := Col1, Col2, ColZ customises the header of the CSV file to be created with the string it receives as a parameter. Please note that this only happens if the file doesn't exist when the hook is executed.
    singleRow := true forces the flattening of the input lists such that all variables values
    are written to a single row/line of the CSV file.
     This workflow demonstrates the optional behaviour of AppendToCSVFileHook:
    val i = Val[Int]
val j = Val[Int]
// this variable will not be written to the CSV file
val z = Val[Double]
val h = CSVHook("/path/to/a/file/or/dir${i}.csv", i, j) set (
  csvHeader := "i, j",
  arraysOnSingleRow := true
)val file = Val[File]
val i = Val[Int]
val h = CopyFileHook(file, "/path/to/copy/the/file${i}.txt")val i = Val[Int]
val j = Val[Int]
val h = ToStringHook(i, j)val i = Val[Int]
val h = DisplayHook("The value of i is ${i}.")