Turning modules into classes

Did you ever want to instantiate a module?

No probably not; that’s what classes are there for, after all. However, I
found out that it’s actually quite easy to turn a module into a class, for
nearly all intents and purposes. (Inspect still says that the objects they
make are instances of class Object, but that could be rewritten easily
enough.)

However, I couldn’t get the inheritance part to work properly. The problem
is that you cannot extend an object with a class, only with a module (even
though classes are modules). Why this restriction? Just to stop someone
like me from writing such obviously abusive code? :slight_smile:

Chris

module FakeClass
def FakeClass.new aSuperClass = Object
make_me_a_class Module.new, aSuperClass
end

def FakeClass.make_me_a_class mod, aSuperClass = Object
  mod.module_eval do
    eval <<-END_DEFINITION
      def self.new (*params)
        obj = Object.new
       #obj.extend #{aSuperClass}  #  No good.
        obj.extend self
        obj.instance_eval { initialize (*params) }
        obj
      end

      def self.superclass
        #{aSuperClass}
      end
    END_DEFINITION

    define_method :class do
      mod
    end
  end

  mod
end

end

Example usage:

module Foo
FakeClass.make_me_a_class self

def initialize (param = 'default')
  @iv = param
end

def foo
  puts 'Foo.foo was called.'
end

end

x = Foo.new
puts x.class
p x
x.foo

y = FakeClass.new.new
puts y.class
p y

Hi –

Did you ever want to instantiate a module?

No :slight_smile:

No probably not; that’s what classes are there for, after all. However, I
found out that it’s actually quite easy to turn a module into a class, for
nearly all intents and purposes. (Inspect still says that the objects they
make are instances of class Object, but that could be rewritten easily
enough.)

[code snipped]

You could do something similar more concisely. However… well, see
further comments after the code.

module FakeClass
def talk
“hi”
end

C = Class.new { include(FakeClass) }

def self.new(*args)
  C.new(*args)
end

def class
  FakeClass
end

end

f = FakeClass.new
puts “#{f.talk}, I’m an instance of #{f.class}”

At this point one starts to see how nice the regular module/class
setup is :slight_smile: And of course you can have a class within a module:

module M
class C …

and other permutations.

David

···

On Tue, 11 Feb 2003, Chris Pine wrote:


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav

You could do something similar more concisely.

···

----- Original Message -----

Well… you sort of cheated. Oh, did I forget to mention the rules? :wink:

I was trying to get similar functionality without using Class. I guess it
is my mathematical training, but I found it amusing that I could pretty much
derive class Class as I did. (You know, always trying to get rid of a
superfluous axiom.)

Also, your example is shorter because you made a fake class, but you didn’t
make a fake Class… see the difference?

Chris

You could do something similar more concisely.

Well… you sort of cheated. Oh, did I forget to mention the rules? :wink:

I was trying to get similar functionality without using Class. I guess
it
is my mathematical training, but I found it amusing that I could pretty
much
derive class Class as I did. (You know, always trying to get rid of a
superfluous axiom.)

Also, your example is shorter because you made a fake class, but you
didn’t
make a fake Class… see the difference?

:slight_smile: You’re more at home in math than in programming,
to some extent, no?

I think that kind of superfluous axiom is at the
heart of good language design. To me, it’s all
about ergonomics, psychology, user-friendliness,
and all your favorite buzzwords.

Or maybe you’re a LISPer. But of course LISP lives
right at the boundary between math and programming.
It was invented by a professor as a mathematical
tool, but one of his students actually implemented
it on a computer. And the professor at first had
some feelings of consternation at that, but I think
came around. I’ve probably got that story all wrong,
so anyone who wants can correct me in email.

Hal

···

----- Original Message -----
From: “Chris Pine” nemo@hellotree.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Monday, February 10, 2003 4:58 PM
Subject: Re: turning modules into classes

----- Original Message -----

Hi –

···

On Tue, 11 Feb 2003, Chris Pine wrote:

----- Original Message -----
You could do something similar more concisely.

Well… you sort of cheated. Oh, did I forget to mention the rules? :wink:

I was trying to get similar functionality without using Class. I guess it
is my mathematical training, but I found it amusing that I could pretty much
derive class Class as I did. (You know, always trying to get rid of a
superfluous axiom.)

However… don’t forget that Module is a Class object (even though
Class is a subclass of Module). That means you haven’t derived Class
purely from Module – there’s already Class lurking there somewhere.

David


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav

:slight_smile: You’re more at home in math than in programming,
to some extent, no?

···

----- Original Message -----
From: “Hal E. Fulton” hal9000@hypermetrics.com


Is it that obvious? Though, I have to say, I find programming a refreshing
and profoundly human activity. Programming languages (well, the ones I
like) are just so human-centric, like natural languages are. What I mean
is, aliens would most likely speak (if they spoke at all) in some way
totally alien to us… uh… totally non-translatable. I think their
programming languages would be similarly bizarre. (Oh, I’m describing this
terribly…) What I mean is, even if they had Turing complete languages, it
would be like trying to read Brainf*ck code.

Anyway, I’m a big fan of humans. We’re all so similar. (Why do we all love
Ruby, for example?) I use computers to explore my own humanity.


I think that kind of superfluous axiom is at the
heart of good language design. To me, it’s all
about ergonomics, psychology, user-friendliness,
and all your favorite buzzwords.


I couldn’t agree more. On the one hand, I love to see which superfluous
axioms we chose, because that brings me closer to humanity. On the other
hand, I like to see what the true axioms are, because that brings me
closer to truth: both mathematical truth (seeing what the minimal set is)
and human truth (seeing exactly what we decided we wanted to add).

Do you not find it interesting to see which parts of Ruby could have been
written in Ruby, rather than in C? Of course, we could build a whole Ruby
interpreter in Ruby, but that’s not at all the same thing. I’m talking
about which parts of Ruby matz could have left out, and we could have put
into a ruby source file included at the beginning of our programs. Some,
like String#reverse, are totally uninteresting though; of course we could
have written that in Ruby. But would you ever have thought that you could
write class Class in Ruby?? It seems so fundamental… that’s why I was so
surprised. (It’s certainly fundamental on the human side of things… it
feels fundamental.)


Or maybe you’re a LISPer.

Nope. I really have tried on a number of occasions to learn it (mainly out
of guilt… I am a math guy, after all). It’s amazing in many respects, but
it’s also sort of hideous. On the surface, anyway, Lisp source is just
ugly. But deeper than that, Lisp is not how humans think. I’m sure you
can train yourself to think that way, but it just doesn’t feel natural.

Anyway, my official verdict on Lisp is still out… until I actually learn
it. Hope I didn’t offend any Lispers out there! Believe me, I’ll keep
trying it until I get it…

Chris

However… don’t forget that Module is a Class object (even though
Class is a subclass of Module). That means you haven’t derived Class
purely from Module – there’s already Class lurking there somewhere.

···

----- Original Message -----
From: dblack@candle.superlink.net


Hmmm…

Well, I was trying to duplicate the functionality of Class. Clearly, once
Ruby is already running I could never get rid of Class. And it isn’t
perfect: I don’t see any way to prevent multiple inheritance (since you can
include many modules into an object).

It seems like a chicken-or-the-egg thing. When the interpreter is starting,
it must solve this by creating one or the other of them first (Class or
Module, I mean), and modifying it later to be dependent upon the other.

The only way I see your argument as valid is that FakeClass.new uses
Module.new (which is a method Module gets from Class). Otherwise, even
though Module happens to be a class, I didn’t depend upon it.

That’s still a good point, though. :slight_smile: I did use Module.new… but I don’t
see any way around that.

Cool!

Chris

Chris,

Oh – I see this was on-list and
you cc’d me. I replied privately
at first, but may as well respond
publicly even though I rambled
far off-topic.

Hal

···

===================================
----- Original Message -----
From: “Chris Pine” nemo@hellotree.com
To: “Hal E. Fulton” hal9000@hypermetrics.com
Sent: Monday, February 10, 2003 5:35 PM
Subject: Re: turning modules into classes

Is it that obvious? Though, I have to say, I find programming a
refreshing
and profoundly human activity. Programming languages (well, the ones I
like) are just so human-centric, like natural languages are. What I mean
is, aliens would most likely speak (if they spoke at all) in some way
totally alien to us… uh… totally non-translatable. I think their
programming languages would be similarly bizarre. (Oh, I’m describing
this
terribly…) What I mean is, even if they had Turing complete languages,
it
would be like trying to read Brainf*ck code.

Actually, I think I do understand you. I’m both a
science fiction fan and amateur philosopher (no
coincidence there) so I’m always asking questions
like: What are the absolutes, and what is merely
human?

I asked my college band director (assistant, actually)
why we used a twelve-toned scale. He was the first
person ever to answer that for me. It turns out, yes,
it is arbitrary (like our base-ten system)… and yet
not arbitrary at all. It has to do with things “working
out” mathematically in a “nice” way. (Sorry, I’ve
forgotten the details.) There are other scales – in fact
some cultures get along with a pentatonic scale – but
for most humans 12 is just about right.

There is no end to thinking about these issues. Star
Trek
is well and good as entertainment, and I under-
stand the need for human-like aliens (physically and
otherwise) in fiction. But, of course, a real alien
is just as likely to resemble a jellyfish as a human
being.

And communication is another issue entirely. Different
evolution, different environments, different histories,
wholly different physical and psychological makeup…
why should anything be translatable at all? As one writer
said, “Compared with an alien, you and a spider are
blood brothers.”

As Wittgenstein said, “If a lion could speak, we would
not understand him.”

But I always vacillate on this matter. Perhaps the
gulf between human and alien is not so much wider than
the gulf between human cultures. Perhaps it is the same
order of magnitude.

Are these aliens intelligent? Well, doesn’t that imply
communication and therefore language, no matter whether
it’s spoken or written or infrared or olfactory? And
isn’t language a set of symbols referring to the outside
world, and therefore can’t we always introduce some
correspondence between symbol sets?

This reminds me of C. S. Lewis’s Out of the Silent
Planet
in which the protagonist sees a Martian boat and
is startled at how much it resembles an earthly boat. But
then he thinks to himself, “Well… what else can a boat
look like?”

But then, to flip-flop yet again – you can make a really
excellent argument that nothing is truly translatable
even from one human language to another. Hofstadter’s
Goedel, Escher, Bach has a wonderful section where he
discusses translations of a Russian novel (was it War
and Peace
? I can’t recall.)

In most languages “house” and “home” are the same word.
Try conveying the difference to a non-English speaker.
In German, the sentences “he has not yet arrived” and
“he has still not arrived” are rendered the same. In
English, the latter conveys more impatience, I think.

Shall I go even farther in that direction? Truthfully
no two of us speak the same language anyway. Every time
I start to pry beneath the surface, I discover giant,
fundamental differences in the way we think and use
language. In daily life we’d call those differences
“subtle”… but for anyone with a love of precision or
a philosophical bent, they are anything but subtle.

Anyway, I’m a big fan of humans. We’re all so similar. (Why do we all
love
Ruby, for example?) I use computers to explore my own humanity.

Oh, absolutely. What else are they for? :wink:

I couldn’t agree more. On the one hand, I love to see which superfluous
axioms we chose, because that brings me closer to humanity. On the other
hand, I like to see what the true axioms are, because that brings me
closer to truth: both mathematical truth (seeing what the minimal set is)
and human truth (seeing exactly what we decided we wanted to add).

Well, Euclid had four. :slight_smile: Along with the “common notions,”
I guess. The fifth one proved problematic.

By the way, you may have picked up on the fact that
I’m interested in conlangs (constructed languages).
Of course, this is perhaps the most oddball of all
human pastimes except sex and politics.

If you’re interested in that kind of thing, do a web
search. There’s more and more stuff all the time. The
language Lojban is very, very interesting, but is so
dauntingly complex as to be virtually unlearnable
(www.lojban.org).

Do you not find it interesting to see which parts of Ruby could have been
written in Ruby, rather than in C? Of course, we could build a whole Ruby
interpreter in Ruby, but that’s not at all the same thing. I’m talking
about which parts of Ruby matz could have left out, and we could have put
into a ruby source file included at the beginning of our programs. Some,
like String#reverse, are totally uninteresting though; of course we could
have written that in Ruby. But would you ever have thought that you could
write class Class in Ruby?? It seems so fundamental… that’s why I was
so
surprised. (It’s certainly fundamental on the human side of things… it
feels fundamental.)

Hmmmmmmmm. I’ll go along with that. And yet… if you
didn’t have class Class, you couldn’t really write it,
could you? You know what I mean.

Cheers,
Hal

Hi,

I never researched the actual answer, but this is my guess. When a string
of length L which is fixed at both its end points is vibrated, then from
the undergraduate physics the following wavelengths are possible: L, 1/2
L, 1/3 L, 1/4 L, etc. Mathematics call these the harmonic numbers.

The wavelength L corresponds to the fundamental tone. The wavelength 1/2
L corresponds to a tone which is twice the frequency of the
fundamental. If we call the fundamental tone as C1, then the first
overtone is one octave higher, which is C2. The wavelength 1/3 L
corresponds to a tone which is three times the frequency of the
fundamental. In our twelve tone system, this will corresponds to G2. So
when a string with fundamental tone C1 is played, actually we get all
these overtones:

C1 C2 G2 C3 E3 G3 B&3 C4 ...

Therefore, although it is true we can create any arbitrary scale, my guess
is that they will not sound as natural… (probably I should some day
experiment this in my Roland synthesizer…) Regarding the pentatonic
scales, usually they are just subsets of the twelve-tone scale, such as [C
E F G B] and [C D E G A].

Regards,

Bill

···

Hal E. Fulton hal9000@hypermetrics.com wrote:

I asked my college band director (assistant, actually)
why we used a twelve-toned scale. He was the first
person ever to answer that for me. It turns out, yes,
it is arbitrary (like our base-ten system)… and yet
not arbitrary at all. It has to do with things “working
out” mathematically in a “nice” way. (Sorry, I’ve
forgotten the details.) There are other scales – in fact
some cultures get along with a pentatonic scale – but
for most humans 12 is just about right.

“Hal E. Fulton” hal9000@hypermetrics.com wrote in message
news:003101c2d178$dbc1ff40$0300a8c0@austin.rr.com

In most languages “house” and “home” are the same word.

In danish they are different: Where “hus” = “house” and “hjem” = “home”,
yet consider the danish sentence: “han måtte gå fra hus og hjem”
Translated directly is says “he had to leave house and home”.
The sentence actually means he went bankrupt and most likely had to find a
cheaper house.

Thus the sentence strangely makes a connection between the two words.

I think generally “home” is a concept more tied to culture where the
physical environment is something different, for example a “house”.
Over time people have come to live more isolated from each other and tend to
confine themselves in buildings called “a house” which has gradually made
“house” take over the meaning of “home” - except this is not the case in
danish and english. Yet the destinction exists elsewhere. Consider the
german word “heimat” or the danish “hjemstavn” (clearly “heim” and “hjem”
are related) which is the local area you come from and where people speak
the same dialect as you do. I suspect the english word “homeland” operates
and a rather larger scale, but I’m not sure.

Frequenlty “hjem” also refers to the place of you parents after you have
grown up. In danish it is not uncommon to ask: “Are you going home during
the holidays?” Meaning are you going to visit your parents and implicitly do
we meet at the local bar for a quick reunion.
The sentence “leaving house and home” therefore probably really means
leaving the farm that were passed down through generations and therefore it
is not only your house you are leaving, but also your home - the place where
you belong to. Of course this is becoming less common these days and then
perhaps not - a lot of small farms in danmark have been or are being merged
into larger farms these days - and with the upcoming expansion of the
European Union you will see similar trends on Poland and also in Portugal
and Spain. This the two small words “house” and “home” relates to major
recent and upcoming political and social events.

Try conveying the difference to a non-English speaker.
In German, the sentences “he has not yet arrived” and
“he has still not arrived” are rendered the same. In
English, the latter conveys more impatience, I think.

Don’t put too much faith into babelfish.
My german is far from perfect, but I’d say you would put an impatient
“immer” into the latter sentence:
“Er ist immer noch nicht angekommen”.

Mikkel

Hi.

“Hal E. Fulton” hal9000@hypermetrics.com did say …

There are other scales – in fact
some cultures get along with a pentatonic scale – but
for most humans 12 is just about right.

I am not sure that I agree with this, Hal.

For most of the history of Western Music, it used
scales other than 12-tones. It was pentatonic or
modal (7 tone). You could argue that not until the 20th C
with Arnold Schoenberg and his theory that each tone
had equal importance, that we got to 12 tones.

As for other cultures, the Indian system is modal
based on a 7 tone scale (see
http://www.chandrakantha.com/articles/scales.html).
Chinese music appears to be based on 5 or 7 tone
scales.

If this means anything, then I would guess that
5 or 7 tones is about right … :wink:

Regards,

···


-mark.


Mark Probert probertm@NOSPAM_nortelnetworks.com
Nortel Networks ph. (613) 768-1082

All opinions expressed are my own and do not
reflect in any way those of Nortel Networks.

[…] It turns out, yes,
it is arbitrary (like our base-ten system)… and yet
not arbitrary at all. It has to do with things “working
out” mathematically in a “nice” way. […]

[…] So
when a string with fundamental tone C1 is played, actually we get all
these overtones:

C1 C2 G2 C3 E3 G3 B&3 C4 ...

Therefore, although it is true we can create any arbitrary scale, my guess
is that they will not sound as natural… (probably I should some day
experiment this in my Roland synthesizer…)

Notes whose ratio of frequencies are small integer fractions sound
“pleasing” to our ears. For example, three notes whose frequencies have
the following ratios …

1 5/4 3/2

make a pleasing sound called a major chord. If the frequency of the
root note is 440 Hz (an A note), then an A major chord has the following
frequencies …

A   440    1/1
C#  550    5/4
E   660    3/2

It turns out, that if we divide an octave into twelve equal steps
(musicians call the steps “half-steps” … go figure), then we have the
following values for frequencies and approximate ratios for each of the
half steps …

            APPROX

NOTE FREQ RATIO ERROR
A = 440.00 1 / 1 (0.0000)
A# = 466.16 10 / 9 (0.0516)
B = 493.88 9 / 8 (0.0025)
C = 523.25 6 / 5 (0.0108)
C# = 554.37 5 / 4 (0.0099)
D = 587.33 4 / 3 (0.0015)
D# = 622.25 7 / 5 (0.0142)
E = 659.26 3 / 2 (0.0017)
F = 698.46 8 / 5 (0.0126)
F# = 739.99 5 / 3 (0.0151)
G = 783.99 9 / 5 (0.0182)
G# = 830.61 11 / 6 (0.0544)
A = 880.00 2 / 1 (0.0000)

With the tweleve equal steps, the A, C# And E notes turn out to have
(almost) the right frequency ratios to make the pleasing major chord
sound.

This system of notes (where all the ratio between half steps is
constant) is called “Equal Tempered”. The big advantage to equal
tempering is all scales sound equally good (or bad), no matter where you
start. Most instruments today are equal tempered.

But equal tempering is not perfect. The ratios are off just a little
bit. Back in the old days (i.e. Bach’s time), there was a great deal of
effort spent on finding the best possible tempering. The problem was
that a tempering that sounded great in the key of C would sound REALLY
aweful in a different key. A “Well Tempered” tuning is one that
maximizes the keys that sound good. Different keys had slightly
different feelings to them (so I am told … my ear could never hear
the difference). That (at least in part) is why so many classical
pieces announce their key in the title (e.g. Concerto in B flat major,
or whatever). My understanding is that when Bach wrote “The Well
Tempered Clavier”, he used a tuning of his own design.

(probably I should some day experiment this in my Roland
synthesizer…)

When I was playing around with synthesizer (mumble mumble) years ago, I
recall seeing programs that would setup the synth in well tempered
tunings. You might want to check that out.

Finally, to make sure we don’t get too far off topic, here is the Ruby
program I used to generate the frequency list …

···

On Tue, 2003-02-11 at 00:57, William Djaja Tjokroaminata wrote:

Hal E. Fulton hal9000@hypermetrics.com wrote:
On Tue, 2003-02-11 at 00:57, William Djaja Tjokroaminata wrote:


#!/usr/bin/env ruby

HALFSTEP = 2 ** (1.0/12.0)

def freq(tonic, halfsteps)
tonic * HALFSTEP**(halfsteps)
end

def close_ratio(f)
n = 1
d = 1
best = [n, d, 10*100]
while n+d < 20
ratio = (n.to_f / d.to_f)
delta = (f - ratio).abs
best = [n, d, delta] if delta < best[2]
if ratio > f
d += 1
else
n += 1
end
end
best
end

def show_note(sym, val, tonic)
printf “%-2s = %6.2f %2d / %2d (%6.4f)\n”,
sym, val, *close_ratio(val / tonic)
end

A=440.0
%w(A A# B C C# D D# E F F# G G# A).each_with_index do |name, index|
show_note(name, freq(A,index), A)
end


– Jim Weirich jweirich@one.net http://w3.one.net/~jweirich

“Beware of bugs in the above code; I have only proved it correct,
not tried it.” – Donald Knuth (in a memo to Peter van Emde Boas)

Frequenlty “hjem” also refers to the place of you parents after you have
grown up. In danish it is not uncommon to ask: “Are you going home during
the holidays?” Meaning are you going to visit your parents and implicitly do
we meet at the local bar for a quick reunion.
The sentence “leaving house and home” therefore probably really means
leaving the farm that were passed down through generations and therefore it
is not only your house you are leaving, but also your home - the place where
you belong to. Of course this is becoming less common these days and then
perhaps not - a lot of small farms in danmark have been or are being merged
into larger farms these days - and with the upcoming expansion of the
European Union you will see similar trends on Poland and also in Portugal
and Spain. This the two small words “house” and “home” relates to major
recent and upcoming political and social events.

I really donŽt follow your thoughts on how social constraints affect the
existence of ŽhomeŽ and ŽhouseŽ as different concepts. FYI:

  • both Spain and Portugal belong to the EU since 1986
  • Spanish and French distinguish between house and home, as in ŽcasaŽ and ŽhogarŽ and
    “maison” et “foyer” (although this conveys other things too)
  • I suspect other languages derived from Latin do too

Finally, here goes my flamebait:

the verbal system of languages derived from Latin rulez!!!

···

On Tue, Feb 11, 2003 at 11:38:45PM +0900, MikkelFJ wrote:

Try conveying the difference to a non-English speaker.
In German, the sentences “he has not yet arrived” and
“he has still not arrived” are rendered the same. In
English, the latter conveys more impatience, I think.

Don’t put too much faith into babelfish.
My german is far from perfect, but I’d say you would put an impatient
“immer” into the latter sentence:
“Er ist immer noch nicht angekommen”.


_ _

__ __ | | ___ _ __ ___ __ _ _ __
'_ \ / | __/ __| '_ _ \ / ` | ’ \
) | (| | |
__ \ | | | | | (| | | | |
.__/ _,
|_|/| || ||_,|| |_|
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

Never trust an operating system you don’t have sources for. :wink:
– Unknown source

Mark Probert wrote:

Hi.

“Hal E. Fulton” hal9000@hypermetrics.com did say …

There are other scales – in fact
some cultures get along with a pentatonic scale – but
for most humans 12 is just about right.

I am not sure that I agree with this, Hal.

For most of the history of Western Music, it used
scales other than 12-tones. It was pentatonic or
modal (7 tone). You could argue that not until the 20th C
with Arnold Schoenberg and his theory that each tone
had equal importance, that we got to 12 tones.

As for other cultures, the Indian system is modal
based on a 7 tone scale (see
http://www.chandrakantha.com/articles/scales.html).
Chinese music appears to be based on 5 or 7 tone
scales.

If this means anything, then I would guess that
5 or 7 tones is about right … :wink:

Regards,

Sorry to OT++, but the fact is that we’ve had 12 potential tones for a
long long time. Indian music is also based on 12 potential tones with
some in-between tones added for effect (but purely for effect…not
first-class citizens). It’s true that we didn’t start hearing 12 tones
simultaneously until around the time of the second Viennese school
(Schoenberg and friends), but even Mozart made use of chromaticism in
less dissonant ways.

This is all about the physical properties of sound. As someone
mentioned, most of what we consider to be music is directly derived from
nature. We just rearrange it differently as time passes.

Chad

I am not sure that I agree with this, Hal.

For most of the history of Western Music, it used
scales other than 12-tones. It was pentatonic or
modal (7 tone). You could argue that not until the 20th C
with Arnold Schoenberg and his theory that each tone
had equal importance, that we got to 12 tones.

As for other cultures, the Indian system is modal
based on a 7 tone scale (see
http://www.chandrakantha.com/articles/scales.html).
Chinese music appears to be based on 5 or 7 tone
scales.

If this means anything, then I would guess that
5 or 7 tones is about right … :wink:

Thanks for that correction. My knowledge of
music theory is slight.

Hal

···

----- Original Message -----
From: “Mark Probert” <probertm@NOSPAM_acm.org.web-hosting.com>
Newsgroups: comp.lang.ruby
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Tuesday, February 11, 2003 9:59 AM
Subject: OT: 12 tones

Finally, here goes my flamebait:

the verbal system of languages derived from Latin rulez!!!

Here I go again with another OT (and flamebait as well, but):

Kya baat hai, paagal kutta? Tumko kaunse bhashe bolte ho?

OK, Hindi is nice too :slight_smile:
This shows that at some point Proto-Indo-European gave birth to 2 families:
(this gets highly technical now)

  • “the languages that got it right”
  • “the languages that got it wrong” (Germanic!!!)

Half-kidding…

Just to try to get this to be somewhat on topic, does anyone else think
that German feels just like forth?

  • lots of words
  • you stack them to define new ones
  • kind of RPN-ish with verb at the end and such :slight_smile:

Now, did any feature of Japanese get into Ruby?

···

On Wed, Feb 12, 2003 at 01:13:47AM +0900, Chad Fowler wrote:

Finally, here goes my flamebait:

the verbal system of languages derived from Latin rulez!!!

Here I go again with another OT (and flamebait as well, but):

Kya baat hai, paagal kutta? Tumko kaunse bhashe bolte ho?


_ _

__ __ | | ___ _ __ ___ __ _ _ __
'_ \ / | __/ __| '_ _ \ / ` | ’ \
) | (| | |
__ \ | | | | | (| | | | |
.__/ _,
|_|/| || ||_,|| |_|
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

Do you mean to say that I can read mail with vi too? :wink:
Didn’t you know that?
:r /var/spool/mail/jk
– debian-mentors

Maybe, but not on a first date.

Hal

···

----- Original Message -----
From: “Chad Fowler” chadfowler@chadfowler.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Tuesday, February 11, 2003 10:13 AM
Subject: Re: was Re: turning modules into classes

Finally, here goes my flamebait:

the verbal system of languages derived from Latin rulez!!!

Here I go again with another OT (and flamebait as well, but):

Kya baat hai, paagal kutta? Tumko kaunse bhashe bolte ho?

Shukriya :slight_smile:

martin

···

Chad Fowler chadfowler@chadfowler.com wrote:

Finally, here goes my flamebait:

the verbal system of languages derived from Latin rulez!!!

Here I go again with another OT (and flamebait as well, but):

Kya baat hai, paagal kutta? Tumko kaunse bhashe bolte ho?

Hi,

···

In message “[OT] Re: was Re: turning modules into classes” on 03/02/12, Mauricio Fernández batsman.geo@yahoo.com writes:

Now, did any feature of Japanese get into Ruby?

I don’t know. Not explicitly at least.

						matz.