[#4766] Wiki — "Glen Stampoultzis" <trinexus@...>

21 messages 2000/09/04
[#4768] RE: Wiki — "NAKAMURA, Hiroshi" <nahi@...> 2000/09/04

Hi, Glen,

[#4783] Re: Wiki — Masatoshi SEKI <m_seki@...> 2000/09/04

[#4785] Re: Wiki — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/09/05

Howdy,

[#4883] Re-binding a block — Dave Thomas <Dave@...>

16 messages 2000/09/12

[#4930] Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions — Conrad Schneiker <schneik@...>

Hi,

11 messages 2000/09/15

[#4936] Ruby Book Eng. translation editor's questions — Jon Babcock <jon@...>

20 messages 2000/09/16

[#5045] Proposal: Add constants to Math — Robert Feldt <feldt@...>

15 messages 2000/09/21

[#5077] Crazy idea? infix method calls — hal9000@...

This is a generalization of the "in" operator idea which I

17 messages 2000/09/22

[#5157] Compile Problem with 1.6.1 — Scott Billings <aerogems@...>

When I try to compile Ruby 1.6.1, I get the following error:

15 messages 2000/09/27

[ruby-talk:4898] RE: [TOY] FL

From: Aleksi Niemel<aleksi.niemela@...>
Date: 2000-09-12 15:37:03 UTC
List: ruby-talk #4898
Dear Guy,

it seems to me you've created some small module to provide simple interface
to provide invariants and pre&post-condition checks. However it would be
much nicer for all if you provide a small description what is FL, what it's
trying to accomplish, how it's done and what the example code shows.

Otherwise, I might comment that the api seems clean, but can't say how
"complete" it is. Therefore I'm waiting excitingly :).

	- Aleksi

> -----Original Message-----
> From: ts [mailto:decoux@moulon.inra.fr]
> Sent: den 12 september 2000 13:06
> To: ruby-talk@netlab.co.jp
> Subject: [ruby-talk:4891] [TOY] FL
> 
> 
> 
>  I've written this small module, just to play with ruby.
> 
>  It has probably many bugs and  probably work only with this 
> example, this
>  is *really* only a toy :-)
> 
> pigeon% cat b.rb
> #!/usr/bin/ruby
> require 'fl'
>  
> class A < FL
>    def invariant
>       puts "invariant class A"
>       super
>    end
>    def alpha(x, y)
>       pre {
>          @old = {}
>          print "pre alpha : ", y, "\n"
>          @old['first'] = x
>       }
>       post { |result|
>          print "post alpha : ", x, " -- ", result.join(' -- '), "\n"
>       }
>       1 + 1
>    end
> end
>  
> class B < A
>    def invariant
>       puts "invariant class B"
>       super
>    end
>    def alpha(a, b)
>       print "old value : ", @old['first'], "\n"
>       if a == 1
>          puts "if true"
>          return [3, 4]
>       end
>       puts "void return"
>       [1, 2]
>    end
> end
>  
> a = B.new
> puts "=======> alpha"
> p a.alpha(1, 4)
> puts "=======> alpha"
> p a.alpha(2, 4)
> pigeon%
> 
> pigeon% b.rb
> =======> alpha
> invariant class B
> invariant class A
> pre alpha : 4
> old value : 1
> if true
> post alpha : 1 -- 3 -- 4
> invariant class B
> invariant class A
> [3, 4]
> =======> alpha
> invariant class B
> invariant class A
> pre alpha : 4
> old value : 2
> void return
> post alpha : 2 -- 1 -- 2
> invariant class B
> invariant class A
> [1, 2]
> pigeon%
> 
>  :-)
> 
> 
> Guy Decoux
> 

In This Thread

Prev Next