class Calcula::Exprs::FuncExpr

Expression for functions and lambda expression

@author Paul T.

Public Class Methods

new(params, action) click to toggle source

@param params [Calcula::Exprs::ParamsExpr] Parameters to the function @param action [Calcula::Expr] The body of the function

# File lib/Exprs/FuncExpr.rb, line 10
def initialize(params, action)
  @params = params
  @action = action
end

Public Instance Methods

children() click to toggle source

@see Calcula::Expr#children @param (see Calcula::Expr#children) @return (see Calcula::Expr#children)

# File lib/Exprs/FuncExpr.rb, line 36
def children
  [@params, @action]
end
to_s(form: :src) click to toggle source

@see Calcula::Expr#to_s @param (see Calcula::Expr#to_s) @return (see Calcula::Expr#to_s)

# File lib/Exprs/FuncExpr.rb, line 18
def to_s(form: :src)
  paramsTxt = @params.to_s(form: form)
  actionTxt = @action.to_s(form: form)
  case form
  when :src then
    "\\#{paramsTxt}(#{actionTxt})"
  when :tree then
    "(lambda #{paramsTxt} #{actionTxt})"
  when :ruby then
    "->#{paramsTxt}{#{actionTxt}}"
  else
    nil
  end
end