Class: Haskell::Signeture

Inherits:
Object
  • Object
show all
Defined in:
lib/rubiskell.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, args, ret) ⇒ Signeture

Returns a new instance of Signeture.



59
60
61
# File 'lib/rubiskell.rb', line 59

def initialize(name, args, ret)
  @name, @args, @ret = name, args, ret
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



62
63
64
# File 'lib/rubiskell.rb', line 62

def args
  @args
end

#nameObject (readonly)

Returns the value of attribute name.



62
63
64
# File 'lib/rubiskell.rb', line 62

def name
  @name
end

#retObject (readonly)

Returns the value of attribute ret.



62
63
64
# File 'lib/rubiskell.rb', line 62

def ret
  @ret
end

Instance Method Details

#list_varsObject



72
73
74
# File 'lib/rubiskell.rb', line 72

def list_vars
  make_vars().join(" ")
end

#make_varsObject

arity must be <= 26 :P



77
78
79
# File 'lib/rubiskell.rb', line 77

def make_vars
  ("a".."z").to_a.slice(0, @args.size)
end

#tuple_formObject



64
65
66
# File 'lib/rubiskell.rb', line 64

def tuple_form
  Haskell.tuple_form(@args.map{|ty|TYPE_TABLE.rassoc(ty)[0]})
end

#tuple_varsObject



68
69
70
# File 'lib/rubiskell.rb', line 68

def tuple_vars
  "(" + make_vars().join(",") + ")"
end