🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.ruby
6 messages
6 total messages Started by Jaroslaw Zabiello Wed, 26 Jul 2006 10:02
Kaskadowe porównania
#68
Author: Jaroslaw Zabiello
Date: Wed, 26 Jul 2006 10:02
14 lines
1111 bytes
Da się jakoś zmusić Rubiego aby porównywał kaskadowo zmienne? Chodzi mi o
możliwość napisania if x == y == z .... W Pythonie to działa bardzo ładnie
i nawet więcej, bo można uzyskać bardzo elgancki zapis w stylu
matematycznym.Np. zamiast

if x > 1 and x <= 10: print 'ok'

można napisać

if 1 < x <= 10: print 'ok'

-- 
Jarosław Zabiełło
http://blog.zabiello.com
Re: Kaskadowe porównania
#69
Author: Marcin Mielżyński
Date: Wed, 26 Jul 2006 11:00
18 lines
1488 bytes
Jaroslaw Zabiello wrote:
> Da się jakoś zmusić Rubiego aby porównywał kaskadowo zmienne? Chodzi mi o
> możliwość napisania if x == y == z .... W Pythonie to działa bardzo ładnie
> i nawet więcej, bo można uzyskać bardzo elgancki zapis w stylu
> matematycznym.Np. zamiast
> 
> if x > 1 and x <= 10: print 'ok'
> 
> można napisać
> 
> if 1 < x <= 10: print 'ok'
> 

Nie da się, to jest kwestia składni - spójrz na to ze smalltalkowej 
strony - rozbierz to na komunikaty i zastanów się czy to ma sens ;)
Tutaj spójność języka górą.

lopex
Re: Kaskadowe porównania
#70
Author: Jaroslaw Zabiello
Date: Wed, 26 Jul 2006 11:25
25 lines
1858 bytes
On Wed, 26 Jul 2006 13:00:18 +0200, Marcin Mielżyński wrote:

>> if 1 < x <= 10
> 
> Nie da się, to jest kwestia składni - spójrz na to ze smalltalkowej 
> strony - rozbierz to na komunikaty i zastanów się czy to ma sens ;)
> Tutaj spójność języka górą.

Spójność spójnością, a Ruby ma też alternatywną składnię do petli za pomocą
słowa "in". Po co skoro to nie do końca jest zgodne z filozogią
smalltalkowych komunikatów? 

Na dodatek Matzowi chyba zabrakło konsekwencji, bo skoro dodał "in" do
tworzenia pętli to mógłby dodać też do warunków (np. if x in y jako
alternatywa dla y.include?(x)). 

Ruby jest bardzo ładnym językiem ale mam wrażenie, że parę rzeczy dodano
trochę bez pomyślunku. Np. duplikacja metod za pomocą aliasów. Nie
przekonuje mnie filozofia: jak nie pamiętasz jaką metodę to spróbuj inna
nazwę, pewnie zadziała. Lepiej mieć mniej metod unikalnych niż całe mnóstwo
z czego część to tylko aliasy.

-- 
Jarosław Zabiełło
http://blog.zabiello.com
Re: Kaskadowe porównania
#71
Author: Marcin Mielżyński
Date: Wed, 26 Jul 2006 11:35
32 lines
2209 bytes
Jaroslaw Zabiello wrote:

> Spójność spójnością, a Ruby ma też alternatywną składnię do petli za pomocą
> słowa "in". Po co skoro to nie do końca jest zgodne z filozogią
> smalltalkowych komunikatów? 
> 

for .. in to jest syntactic sugar dla .each

faktycznie, z tej strony patrząc nie widzę przeszkód przed dodaniem 
nowej składni dla kaskadowych porównań

> Na dodatek Matzowi chyba zabrakło konsekwencji, bo skoro dodał "in" do
> tworzenia pętli to mógłby dodać też do warunków (np. if x in y jako
> alternatywa dla y.include?(x)). 
> 

jeśli tak, to przykłady można mnożyć, z drugiej strony jednak wogóle 
wywaliłbym for .. in z Rubiego i nie zastanawiał się nad in

> Ruby jest bardzo ładnym językiem ale mam wrażenie, że parę rzeczy dodano
> trochę bez pomyślunku. Np. duplikacja metod za pomocą aliasów. Nie
> przekonuje mnie filozofia: jak nie pamiętasz jaką metodę to spróbuj inna
> nazwę, pewnie zadziała. Lepiej mieć mniej metod unikalnych niż całe mnóstwo
> z czego część to tylko aliasy.
> 

kwestia gustu i przyzwyczajenia, sam często zamiennie używam np: length 
i size - po prostu czasem lepiej czyta się tak lub tak w zależności od 
sytuacji.

lopex
Re: Kaskadowe porównania
#72
Author: Aleksander Janeczko
Date: Wed, 26 Jul 2006 17:27
14 lines
1463 bytes
Marcin Mielżyński wrote:
> Jaroslaw Zabiello wrote:
> > if 1 < x <= 10: print 'ok'
> >
>
> Nie da się, to jest kwestia składni - spójrz na to ze smalltalkowej
> strony - rozbierz to na komunikaty i zastanów się czy to ma sens ;)

No - gdyby wzbogacić klasę TrueClass o właściwość przechowującą
liczbowy element nierówności z której ewaluowała (tu 1), a potem o metodę
porówującą tę właściwość z argumentem następującej nierówności (tu 10)...
To by się dało. ;)

Jakieś pomysły jak? :)
Re: Kaskadowe porównania
#73
Author: Aleksander Janeczko
Date: Wed, 26 Jul 2006 20:56
5 lines
1212 bytes
> gdyby wzbogacić klasę TrueClass o właściwość przechowującą
> liczbowy element nierówności z której ewaluowała (tu 1)

Tfu, oczywiście chodziło mi o zawarcie w instancji prawdy
i wykorzystanie w następnym porównaniu niewiadomej x.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads