Thursday, July 5, 2007

Operating with operators

Pugs revision: r16707

Operators are fun. Using them is fun, and creating them is fun. We'll cover both in this post. It will be fairly short, but hopefully you'll find something interesting.

Note, I won't quite be covering Operator precedence. See S03 for details on that note.

Operators. Operators? Operators.

Junctions are a nice semantic addition to Perl 6; in short, a junction is a single value that represents multiple values. You essentially operate on top of these in parallel, and they can be quite useful.

Junctions are important enough to where the purpose of the operators |, & and ^ have been delegated to them, rather than being bit-twiddling operations as you'd think at first. With junctions, there are also the special functions any, one, all that are for their list counterparts:
pugs> any(1..5)
(1 | 2 | 3 | 4 | 5)
pugs> one(1..5)
(1 ^ 2 ^ 3 ^ 4 ^ 5)
pugs> all(1..5)
(1 & 2 & 3 & 4 & 5)
As you can see from the example, the meaning of the operators should be somewhat evident (now, at least.) How can we use them?
pugs> if 1 == any(1..10) {
....> say "works";
....> }
pugs> if 1 == all(1..10) {
....> say "works";
....> }
pugs> if 1 == one(1..10) {
....> say "works";
....> }
(Note that I am utterly terrible normally at thinking up code examples, if you guys can do any better I'll take all I can get.)

Naturally in the above example, your semantics and list you use will change, but you should get the idea that when you operate over junctions, you're operating over one aggregation of different things. An element in a junction is orthognoal to it's counterparts as order is not relevant.

Junctions are a useful addition. In general, you'll probably more directly deal with composing them from lists than directly per se, however, knowing the idea behind what every junctive operator does is good to know.

The range operator, .. is used to denote the set of values from one point to another. From 1 to 10, a to e, etc. etc... You can use them to represent values from positive infinity to negative infinity, a to z, 1 to whatever, ex:
0..*     # 0 to +infinity
*..0 # -infinity to 0
'a'..'e' # a to e
1..10 # one to two
Hopefully, most of these semantics should be obvious even without the comments.

Feed operators
Feeds are a lot like piping. You can take the return values from a function and 'feed' them to another quite seamlessly. For example, the results from map can be fed into your own custom function:
map { $_ % 2 == 0 },(1..10) ==> functor
The distinction between the two feed operators, <== and ==> are simply in which way your data flows.

Symbolic Unary operation
In the case of many operators, when used in an unary form, impose a context on the operation in general. For example, where ~ was normally string contatenation, when used in an unary form, i.e. ~$x you are forcing a string context on your variable. This definition is somewhat strict; an unary context for an operator can do a lot of things.

What're some of the things you can do with this? There is, for example, an 'from 0 to this' operator:
pugs> my $l = 10;
pugs> map { .say },^$l
You can also use this form to turn a list of numeric values into a list of string values:
pugs> ~1..10
("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
Or, you can also use the equal sign to iterate over an iterator. For example:
[altair@stormwind diveintoperl6]$ cat
say "enter something...";
my $l;
while $l = =$*IN {
say "you entered '"~$l~"'";
[altair@stormwind diveintoperl6]$ pugs
enter something...
you entered 'hello'
hi dive into perl6 crowd!
you entered 'hi dive into perl6 crowd!'
[altair@stormwind diveintoperl6]$
A list of all these rules can be found in S03.

Meta operator[s|ing]

Hyper operators
Hyper operators are a way of taking an operator, applying it to each element of it's list, and returning the resultant list. In this sense, it's somewhat similar to map.
A hyper operator is denoted by the operator surrounded by a >> and a <<. There are variations to this however, which we'll shortly see. Here's just an example of taking two lists, adding each of their elements to the corresponding one, and returning it:
pugs> (1,2,3,4,5) >>+<< (5,4,3,2,1)
(6, 6, 6, 6, 6)
What about an unary operator? Just use one of the symbols denoting a hyper operator, on the side which the arguments are expected:
pugs> ~<< (1..10)
("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
But what if the two lists are not of the same length? How would you simply increase every element in a list by one? At first it may seem as though you need some sort of 'hackery,' but Perl 6 will sufficiently upgrade it, however, you must 'point' the hyper operator towards the smaller list:
(1,2,3) >>+>> 1 # (2,3,4)
If you simply 'point' your hyper operator towards the short side, perl will take care of the rest. If you don't know which side will be smaller than the other (if at all,) simply make the hyper operators 'point outwards':
@a <<+>> @b
Reduction operators
Reduction operators are a meta operator that are used with a traditional infix operator, and they are used to 'reduce' a list of values into a single one. For example, here's a good one taken from freenode #perl6's channel title:
pugs> [~] <m oo se>
If you're familiar with Haskell, this is the same:
Prelude> foldr1 (++) ["m","oo","se"]
Cross operators
A cross operator is acheived by putting an infix operator inbetween two X's. It uses the infix operator and generates all permutations of the two lists given to it. Ex:
<austin brian> X~X <seipp stanford>
It's roughly that simple (note, not yet implemented.)

Creating operators
In Perl 6 you get a lot of the fun power of creating your own operators. What can they do? Well, just about whatever you want.

Operators in Perl 6 are typically defined as multi-subroutines, as you can have different types and contexts they're used in, i.e. you may need to add support for + to work with a class you define. Fairly typical stuff.

How do we define an operator? They are defined in the form of:
multi sub x:<y> (z) { ... }
  • x is one of infix, prefix, postfix, circumfix or postcircumfix. Essentially, these are the categories your operator fits into.
  • y is your operator. The characters can be any non-whitespace characters, unicode included.
  • z is/are your operands.
Actually, the part following the semicolon in the subroutine name (that's all operators are, special subroutines) can essentially be any form of a hash subscript, i.e. you could do <+> or {'+'}, etc. etc..

Unary operators can be defined either as prefix or postfix, with one operand (naturally.) Binary operators are defined as infix, and bracketing operators (for example, in HTML, the two parts of a comment: <!-- and -->) are defined with circumfix. postcircumfix is used where a postfix is expected.

This is best explained with a couple of good examples. For example, here's the reverse form of the xx operator:
pugs> multi sub infix:<~||~> (Int $n, Str $s) {
....> return $s xx $n;
....> };
pugs> 5 ~||~ "hi"
("hi", "hi", "hi", "hi", "hi")
What about a unary operator, that, say, uppercases the string that is prefixed to it?
pugs> multi sub postfix: (Str $s) {
....> $s.uc;
....> };
pugs> "arg"!!!
How about a 'plus or minus' operator?
pugs> multi sub prefix:<+/-> (Int $n) {
....> return +$n|-$n;
....> };
pugs> +/-5
(-5 | 5)
We could even define our own comment operator:
multi sub circumfix:{'~#','#'} ($s) { return ""; }
~# how incredibly fun it is to conceive operators #
say "hello world";
(Note, the [post]circumfix category for operators doesn't work yet (r16707), but hopefully it should soon.)

This was a short post but a fun one. In previous languages, operators seemed quite boring and trivial, but hopefully Perl 6's new features will show you how to have fun with such a simple primitive. :)


Anonymous said...


>A cross operator is acheived by putting an
>infix operator inbetween two X's. It uses the
>infix operator and generates all permutations
>of the two lists given to it.

>[austin brian] X~X [seipp stanford]

Those aren't actually permutations, but the cartesian product of the two sets. A permutation would be:
(1,2,3) ->

Kind regards,

Elias Pipping

Anonymous said...

I don’t understand how a postcircumfix operator is used — if it’s circumfix, how can it be postfix as well? An example would help.

Thomas Wittek said...

Great work!

But I believe i found an error in "Ranges":
1..10 # one to two

Shouldn't it be one to ten?

austin said...

@Elias & Thomas: thanks for the fixes. :)

@anonymous: an example of a postcircumfix operator is adding the square-brackets onto the end of an array when you wish to get an element, i.e.


Your brackets are your postcircumfix operators in this instance. If I can find a sufficient example for them, I'll be certain to add them when I get the time.

Anonymous said...

look this is the "diet" i told you about you should really enter the site :) bye enter the site

出張ホスト said...


熟女サークル said...

性欲のピークを迎えたセレブ熟女たちは、お金で男性を買うことが多いようです。当、熟女サークルでは全国各地からお金持ちのセレブたちが集まっています。女性から男性への報酬は、 最低15万円からとなっております。興味のある方は一度当サイト案内をご覧ください

Anonymous said...

Thank you very much, this was concise and well written. I enjoyed reading it, and I'm very glad you take the time to write and help out all of us who are just learning.

You're awesome!


セレブ said...


ゲイ said...


素人 said...


右脳左脳チェッカー said...


出張ホスト said...


友達募集 said...


家出掲示板 said...


プロフ said...


乱交パーティー said...

乱交パーティー実施サークル、「FREE SEX NET」では人に見られること、人に見せつける事が大好きな男女が集まり、乱交パーティーを楽しむサークルです。参加条件は「乱交が好きな18歳以上の健康な方」です。興味がある方はぜひ当サイトをご覧ください

家出 said...


逆¥交際 said...


彼氏募集 said...


若妻 said...


家出 said...


お宝映像 said...


熟女 said...


メール said...


スタビ said...


処女 said...


メアド開運 said...


逆¥交際 said...


豪華賞品 said...


メル友 said...


神待ち said...


乱交 said...


アブノーマル said...


Anonymous said...

It is very interesting for me to read the post. Thanx for it. I like such themes and everything that is connected to them. I definitely want to read more soon.

セレブラブ said...


裏バイト said...


救援部 said...


メル友募集 said...


失恋 said...


高額バイト said...


交際 said...


神待ちサイト said...


露出 said...


友達 said...


ライブチャット said...


スタービーチ said...


女に生れて来たからには!! said...


グリー said...


SM度チェッカー said...


リッチセックス said...


友達募集中 said...


玉の輿度チェッカー said...


リア友 said...


お家遊びに来てくれる人いないかなぁ? said...


神待ち said...


Anonymous said...

Your blog keeps getting better and better! Your older articles are not as good as newer ones you have a lot more creativity and originality now keep it up!

家出掲示板 said...


名言チェッカー said...


モバゲー said...


円倶楽部 said...


旦那以外とエッチしたい said...


神待ち said...


出会い said...

セフレ専門出会い喫茶エンジョイラブは店舗型出会い喫茶 ENJOYグループのネット1号店としてオープンしました♪セフレ探しを目的とした出会いの専門店です。Hに満足していない女性達が多数登録。今すぐ即アポOK表示のHな女の子を新着順で紹介中です

熟女 said...

熟女だって性欲がある、貴方がもし人妻とSEXしてお金を稼ぎたいのなら、一度当サイトをご利用ください。当サイトには全国各地からお金持ちのセレブたちが集まっています。女性から男性への報酬は、 最低15万円からと決めております。興味のある方は一度当サイト案内をご覧ください

mコミュ said...


真剣に向き合ってはくれませんか? said...


スタービーチ said...


神待ち said...


右脳左脳チェッカー said...


セレブ said...


スタービーチ said...


Anonymous said...

You know what, buy GPS blocker to block all spy transmitters in your room or at work.

Anonymous said...

Good day, sun shines!
There have were times of troubles when I felt unhappy missing knowledge about opportunities of getting high yields on investments. I was a dump and downright stupid person.
I have never imagined that there weren't any need in large starting capital.
Now, I'm happy and lucky , I started to get real money.
It's all about how to choose a proper partner who utilizes your money in a right way - that is incorporate it in real business, and shares the profit with me.

You may ask, if there are such firms? I'm obliged to answer the truth, YES, there are. Please get to know about one of them: [url=]Online Investment Blog[/url]

高級セレブ said...


メル友 said...

変な性癖があるのはどう思いますか?私、獣姦とか好きなんです…いきなりこんな話驚きますよね…引きましたか?Σ(゜□゜(゜□゜*)野外とかにも興味があります!変態チックなのもたまにはいいですよ\(^-^ )こんな私にメールしてくれるとうれしいです。メールから色んな話しましょ(^_^)年上の人がいいです、私は27歳ですよ!それでは、メール待ってますね

Anonymous said...

[url=]hip hop jewelry[/url],[url=]hip hop pendants[/url],hip hop watches,[url=]bling bling[/url] ,hip hop,[url=]hip hop chains[/url],hip hop bling,[url=]iced out chains[/url],[url=]wholesale chains[/url]
hip hop jewelry
wholesale hip hop watches
hip hop rings

ツイッター said...


Anonymous said...

Yesterday i bought viagra in [url=]Online drugstore[/url].
On my surprise it works excellent! All the matter is that the price low, because I do not pay for the trade mark. That's all!
You can see explanations about it.
A generic drug (generic drugs, short: generics) is a drug which is produced and distributed without patent protection. According to the U.S. Food and Drug Administration, generic drugs are identical bioequivalent range to the brand name counterpart with respect to pharmacokinetic and pharmacodynamic properties. By extension, therefore, generics are considered identical in dose, strength, route of administration, safety, efficacy, and intended use. In most cases, generic products are available once the patent protections afforded to the original developer have expired. When generic products become available, the market competition often leads to substantially lower prices for both the original brand name product and the generic forms. You can read more at

恋愛のこと教えてねヽ(^◇^*)/ said...

仕事や趣味に夢中になってたらいつの間にか独りきりになってた…彼氏も長いこといなくて恋愛から離れてました( ´_ゝ`)そろそろ恋愛にも夢中になりたいけど男の子とどうせっしたらいいか教えて下さい(-^▽^-) 動物好きだから、年上で動物好きな人仲良くしてね(。・w・。 ) ペット連れて散歩なんていいよね!!まずはのんびりメールからお願いします

Anonymous said...

スタービーチ said...


mコミュ said...


競馬予想 said...

2010 競馬予想 各厩舎・調教師から届けられる最強の馬券情報を限定公開!本物の オッズ 表はコレだ

友達 said...

変わってるって言われるけどわりといい人だよ(笑)!!お笑い好きな人だったら話盛り上がりそうだねO(≧▽≦)O 色んなことに興味深々でおっちょこちょいだからそばで支えてくれる人募集中σ(゜-^*)自分の年齢的に年下の男の子はアウトだからごめんね(*_ _)人

スタービーチ said...


モテる度チェッカー said...


皐月賞 said...


モバげー said...


Anonymous said...

IS VERY GOOD..............................

セフレ said...


出会い said...


スタービーチ said...


エッチ度チェッカー said...


スタービーチ said...


スタービーチ said...


スタビ said...


スタービーチ said...


モバゲー said...


スタービーチ said...


友達 said...


モバゲー said...


スタービーチ said...


ヴィクトリアマイル said...

ヴィクトリアマイル 2010 予想、オッズ、厳選買い目は?今年の波乱をズバリ!確勝買い目公開中!大穴狙いのギャンブラー必見激アツ情報

モバゲー said...


トゥイッター said...


スタービーチ said...


日本ダービー said...

第77回 日本ダービー 2010 予想、オッズ、厳選買い目は?人気が平然と馬券に絡む理由とは!?見事に展開を読んで結果を的中させる

SM度チェッカー said...


mコミュ said...


スタービーチ said...


mコミュ said...

素敵な出 会 いで愛を育む♪理想の人と楽しめる関係を築きませんか?mコミュでしか味わえない幸せを掴みましょう

スタビ said...


gree said...


スタービーチ said...

スタービーチで始まる素敵な出 合いをしていきませんか。楽しめる出 合いを経験するにはココから始まる!!最高の出 合いがあなたを待っている

モバゲー said...


グリー said...

最近はどこのSNSサイトも規制ばっかりで、ちょっと出 合いに関して書き込みするとアク禁食らうけど、夏休み終盤に差し掛かり色々なサイトを調べた結果、グリーだけはどうも規制が緩んでるみたいです。今がチャンスの時期ですよ

mコミュ said...


Anonymous said...

fifty one electronic cigarette what is the best electronic cigarette starter kit [url=]electronic cigarette in stores [/url] what is the best electronic cigarette to buy electronic cigarette customer reviews

Anonymous said...

товары из китая электронные сигареты - вдох дыма от сигареты

Anonymous said...

Hi there! This is kind of off topic but I need some advice from an established blog.
Is it hard to set up your own blog? I'm not very techincal but I can figure things out pretty quick. I'm thinking about making my own but I'm not sure where to start. Do you have any ideas or suggestions? Appreciate it
Here is my web site ; How To download movies

Anonymous said...

Anonymous said...

payday loans online Stype [url=]Payday Loans Online[/url] Flallododebag Fundpopog It is always better to hire the professional mind cash because particular loan that you are wanting.The fact that you can apply to the ability to get their car or truck fixed!Benefits unless you might have skipped at some months when their monthly expenses exceed their per month budget!

Anonymous said...

Pretty great post. I simply stumbled upon your weblog and wished to say that I
have truly enjoyed browsing your weblog posts.
In any case I will be subscribing for your rss feed and I
am hoping you write once more soon!
Look into my web-site ...

Anonymous said...

I know this if off topic but I'm looking into starting my own weblog and was curious what all is required to get set up? I'm assuming having
a blog like yours would cost a pretty penny? I'm not very web smart so I'm not 100% certain. Any recommendations or advice would be greatly appreciated. Thanks youtube views review

Look at my weblog :: increase youtube views
My webpage :: buy youtube subscribers

Anonymous said...

I have read so many articles regarding the blogger lovers however this paragraph
is in fact a nice piece of writing, keep it up.

Here is my webpage: how to make money online free and fast

Anonymous said...

It is not my first time to visit this website, i am browsing
this site dailly and get nice facts from here all the time.

Feel free to surf to my site: ways to make money online for free

Anonymous said...

I do not even know the way I ended up right here, but I believed this submit was great.
I don't realize who you might be but definitely you're going to a well-known blogger if you are
not already. Cheers!

Stop by my weblog :: Make Money Online Free No Scams

Anonymous said...


Anonymous said...

I enjoy what you guys are up too. This type of clever work
and exposure! Keep up the wonderful works guys I've added you guys to our blogroll.

Feel free to visit my web site - hedging binary options
My website: binary options calculator

Anonymous said...

I have to thank you for the efforts you've put in writing this site. I really hope to view the same high-grade blog posts by you later on as well. In fact, your creative writing abilities has encouraged me to get my very own blog now ;)

Also visit my web blog: how to make money online free

Anonymous said...

An interesting discussion is worth comment. I believe that you should publish
more on this topic, it might not be a taboo matter but generally folks don't discuss these issues. To the next! Best wishes!!

my web-site :: forex binary options

Anonymous said...

Have you ever considered writing an e-book or guest authoring on other sites?
I have a blog based on the same topics you discuss and would love to have you share some stories/information.
I know my visitors would appreciate your work.
If you are even remotely interested, feel free to send me an e-mail.

Take a look at my weblog; how to make money with a free website

Anonymous said...

I'm extremely impressed together with your writing abilities as smartly as with the layout for your weblog. Is this a paid subject or did you customize it your self? Either way stay up the nice high quality writing, it is rare to see a great blog like this one these days..

Check out my website; binary options signals

Anonymous said...

Wow, amazing blog structure! How long have you been running a blog for?
you make running a blog look easy. The full look of your site is magnificent,
as neatly as the content material!

My web page :: binary options demo
Also see my site > binary options platform

Anonymous said...

Hi all, here every one is sharing these kinds of experience, therefore it's fastidious to read this web site, and I used to go to see this website everyday.

Stop by my weblog - binary options trading

Anonymous said...

Hi, every time i used to check webpage posts here early in the break of day,
because i enjoy to find out more and more.

Here is my page ... additional resources

Anonymous said...

I take pleasure in, cause I discovered just
what I used to be having a look for. You've ended my four day long hunt! God Bless you man. Have a great day. Bye

Look into my web blog: Nike Air Jordan

Anonymous said...

Greetings from Colorado! I'm bored to death at work so I decided to check out your site on my iphone during lunch break. I love the info you provide here and can't wait to take a look
when I get home. I'm amazed at how quick your blog loaded on my cell phone .. I'm not even using WIFI, just 3G
.. Anyhow, wonderful site!

my page: Louis Vuitton Bags

Anonymous said...

Appreciate this post. Let me try it out.

Also visit my weblog - go to the website

Anonymous said...

I am extremely impressed with your writing skills as
well as with the layout on your blog. Is this a paid theme or did you modify it yourself?
Either way keep up the nice quality writing, it's rare to see a nice blog like this one today.

Stop by my blog post;

Anonymous said...

Fiгst off I want to ѕay tеrrific blog!

I had a quіck question in whiсh І'd like to ask if you don't mind.
I was curiοuѕ tο κnow hoω
уou center yourself and cleaг youг mind prior tο writing.
I've had difficulty clearing my thoughts in getting my ideas out. I truly do enjoy writing but it just seems like the first 10 to 15 minutes are wasted simply just trying to figure out how to begin. Any ideas or tips? Many thanks!

Feel free to visit my webpage astroloji

Anonymous said...

Whеn I originаlly left а comment I apреar
to hаvе сlickeԁ thе
-Notify me whеn neω comments are adԁed- checκbox and nοw eaсh time a сomment iѕ adԁed
ӏ recieve four emailѕ with the eхаct same сomment.

Іs thегe a means you аrе able tο
гemοve me from thаt sегvicе?

Feel free to surf to mу web sіtе: meuble salle de bain

Anonymous said...

I think eveгything posted was very logical. Βut, think about thіѕ, supposе уou weгe to creatе a killer heаdline?

I ain't suggesting your information isn't gooԁ.
, but suppose you addеd a hеаԁline to maybe get рeоρle's attention? I mean "Operating with operators" is a little boring. You should look at Yahoo'ѕ home page and see how they
cгeаte news titles to grаb people іntеrested.
You might adԁ a related video οr а pіc оr two to get readers іntereѕted about everything've got to say. In my opinion, it would bring your posts a little bit more interesting.

Have a look at my web site; meuble de salle de bain

Anonymous said...

It's a pity you don't have a donаte button!
I'd certainly donate to this fantastic blog! I suppose for now i'll ѕettle fοr bookmarking and аԁding yοur RSS feed to my
Google acсount. I lοok fοrward to
brand nеω updates аnd will ѕhаre thіs
blog with my Facebook gгoup. Ϲhat

Herе is my wеblog; peintre en batiment

Anonymous said...

Hello! Do you knοw if thеy make any plugins tο ѕаfeguard agаіnst hacκеrs?
ӏ'm kinda paranoid about losing everything I've ωoгκed harԁ on.

Any tips?

My ωeb blog; meuble De salle de bain

Anonymous said...

ӏ'm really enjoying the design and layout of your site. It's
a very easy on thе eyes which makeѕ
it much more enjoуable for mе to
come hеrе anԁ visit morе often.

Dіd you hire οut a ԁeveloper tο cгеatе
youг theme? Εxсеllеnt worκ!

Нere іs my blοg ροst :: meuble de salle de bain

Anonymous said...

What's up mates, its great post about educationand fully defined, keep it up all the time.

Here is my web page - Devis Travaux

Anonymous said...

It's an awesome piece of writing in favor of all the internet users; they will get benefit from it I am sure.

My web blog

Anonymous said...

Hi there this is somewhat of off topic but I was wondering if blogs use WYSIWYG
editors or if you have to manually code with HTML. I'm starting a blog soon but have no coding experience so I wanted to get advice from someone with experience. Any help would be greatly appreciated!

Take a look at my website :: maquillage pas cher

Anonymous said...

Hello there, I fοund youг blog by the use of Google eѵen as
looking for а гelаtеd matter,
yοur website gοt heге up, it appears good.

I have bookmaгked it in mу google booκmarks.

Hi therе, just changeԁ into alert to youг weblοg
thгough Goοgle, and found that it's really informative. I'm gοnna
watch out for brusselѕ. I will appreciаte should you continue thiѕ in future.
Lots of folkѕ ωill be benefited out of your ωгiting.

Mу web-site ... devis fenetres

Anonymous said...

Thanks for the strategies. 1 thing I've acquired seen will be the fact banks too as financial institutions comprehend the spending routines of consumers as well as comprehend that most on the folks max out and about their real credit cards all around the breaks. They correctly consider advantage of that fact and start flooding ones inbox alongside with snail-mail box together with hundreds of 0 APR card gives immediately soon after the holiday period closes. Knowing that for anyone who's like 98%
of all American community, you may soar at the possible opportunity to consolidate personal credit card debt and shift
balances to 0 APR credit cards.

Also visit my blog; raspberry weight loss pills dr oz

Anonymous said...

I think the admin of this website is really working hard for his website, for
the reason that here every data is quality based stuff.

my web page ... voyance gratuite par mail

Anonymous said...

Sweet blog! I found it while searching on Yahoo News.
Do you have any tips on how to get listed in Yahoo News?
I've been trying for a while but I never seem to get there! Thank you

Here is my webpage ... maquillage

Anonymous said...

Undeniably believe that that you said. Your favourite reason appeared to be
at the web the simplest thing to consider of. I say to you,
I definitely get annoyed even as folks think about worries that they just do not know
about. You controlled to hit the nail upon the top and defined out the whole thing without having side-effects
, people could take a signal. Will probably be again
to get more. Thank you

Feel free to visit my blog post - maquillage pas cher

Anonymous said...

Hiya! I simply wish to give an enormous thumbs up for the good information you could have right here on this post.
I will probably be coming back to your blog for extra soon.

Feel free to visit my blog post; increase semen naturally

Anonymous said...

Great wοrk! Thаt is the kind of informatiοn
that arе suppοsed to bе shаred around thе net.
Disgгаce on the sеeκ engіnes foг
nοw nοt positіoning thiѕ post higher!
Come on ovеr and visit my site . Thank you =)

My sitе ... meuble salle de bain pas cher

Anonymous said...

What's up to all, how is all, I think every one is getting more from this site, and your views are nice in support of new people.

Feel free to visit my homepage ... voyance

Anonymous said...

Sorry hit enter just before I wrote the remainder =D Dude you might have more of
a manage on the social websites thing than anybody I have at
any time study. There's like four PhD's well worth of
content material by itself in this 1 weblog publish......


Also visit my weblog; dating tips for girls in urdu

Anonymous said...

Hello there, There's no doubt that your web site might be having internet browser compatibility problems. Whenever I take a look at your blog in Safari, it looks fine but when opening in I.E., it has some overlapping issues. I just wanted to provide you with a quick heads up! Besides that, great website!

my page voyance en direct

Anonymous said...

Good day very nice site!! Man .. Excellent .. Amazing .
. I'll bookmark your site and take the feeds additionally? I'm happy to seek out a lot of
helpful information here within the put up, we'd like develop extra techniques on this regard, thanks for sharing. . . . . .

Feel free to surf to my blog post: voyance

Anonymous said...

Its like you read my mind! You appear to know so much about this,
like you wrote the book in it or something. I think that you could do with a few pics to drive the message home a bit, but other than that, this
is fantastic blog. A fantastic read. I will definitely be back.

Visit my blog; voyance

Anonymous said...

Hello There. I found your blog using msn. This is a very
well written article. I'll be sure to bookmark it and return to read more of your useful information. Thanks for the post. I will certainly return.

Feel free to surf to my web blog: tarot de Marseille

Akber Ali Ansari said...

Skin whitening creams or products lighten your skin tone only to one shade but first time in the history you would be able to use Natural Glow Skin Whitening Supplement that promise you to grab 1-3 shade lighter skin tone only in 3 months. If you continue usage then you can also expect 3-6 shade lighter skin tone. Voila! No natural product can offer you this “Whitening gift pack”.