Andrei Alexandrescu wrote:
Please substitute: X does duck typing in the D programming language.
What is X?
FWIW this was the story with immutable. Walter got tired of
explaining: Invariant implements immutable types in the D programming
language.
Boy did I ever get tired of that. It's a
On 10/16/2010 02:54 PM, kenji hara wrote:
Adapter-Pattern! I'd have forgotten the name.
It is NOT equals to duck-typing.
It's a subset of duck typing. I don't think calling a function that
supports a limited form of duck typing duck is a lie.
Andrei
On Sat, 16 Oct 2010 15:51:23 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
On 10/16/2010 01:39 PM, Steven Schveighoffer wrote:
I suggest wrapping a char[] or wchar[] (of all constancies) with a
special range that imposes the restrictions.
I did so. It was called byDchar
Wouldn't linking adaptTo to opDispatch (if the functions we are after not
supported by that class) make it complete duck-typing?
On Sat, 16 Oct 2010 23:05:52 +0300, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
On 10/16/2010 02:54 PM, kenji hara wrote:
Adapter-Pattern! I'd
Steven Schveighoffer wrote:
Think of it another way. Remember zip files? What a great name, and
yes, it seemed silly at first, but zip entered the lexicon and D has a
zip module and it never occurs to anyone it might be better named
std.compressedArchive. Phil Katz renamed arc files zip files,
On 2010-10-16 16:05:52 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org said:
On 10/16/2010 02:54 PM, kenji hara wrote:
Adapter-Pattern! I'd have forgotten the name.
It is NOT equals to duck-typing.
It's a subset of duck typing. I don't think calling a function that
supports a
Kagamin wrote:
Walter Bright Wrote:
Which blog article would you click on? Interface Adapter for D or Duck
Typing for D?
You are somewhat right. The right place for marketing is an article, not the
library source, right?
They're both important. Especially consider that Phobos is open
Lutger wrote:
Justin Johansson wrote:
On 16/10/2010 6:30 PM, Christof Schardt wrote:
auto d = duck!Drawable(c); // awes
What about as ?
auto d = as!Drawable(c);
Christof
This is a totally brilliant suggestion by Christof as
anyone who understands the XPath 2.0 type language
would tell you
Kagamin wrote:
Walter Bright Wrote:
One would think programmers are above all that, but we are not.
Ask people what they think about cross-platform .net ad campaign.
I don't know anything about that.
Yes, it certainly is not a lie.
In Naming Type System, adaptTo extends duck.
But, people who you want to appeal it will think that all of
duck-typings each person imagine possible.
As a result, by knowing duck supports only Adapter-Pattern, they will
be lied to and angry.
It will negatively
On 10/16/2010 13:51, Andrei Alexandrescu wrote:
char[] and wchar[] are special. They embed their UTF affiliation in
their type. I don't think we should make a wash of all that by handling
them as arrays. They are not arrays.
Then rename them to something else. Problem solved.
--
Rainer
I'm going to go with duck on this one. It could be an attractive name
to put in reddit/yc titles.. Can your language duck? D can, with
duck!. Plus it's easily greppable and easy to type. And I don't like
stuttering words like adaptTo, there's two repeating t's in there
*and* I need a shift, that
On 10/16/2010 14:02, Walter Bright wrote:
If it's a cringeworthy name, I'd agree. But duck is not cringeworthy.
Fact: I cringe every time I hear duck typing.
--
Rainer Deyke - rain...@eldwood.com
On Sat, 16 Oct 2010 16:26:15 -0400, Walter Bright
newshou...@digitalmars.com wrote:
Steven Schveighoffer wrote:
Think of it another way. Remember zip files? What a great name, and
yes, it seemed silly at first, but zip entered the lexicon and D has a
zip module and it never occurs to
On Sat, 16 Oct 2010 16:31:34 -0400, Walter Bright
newshou...@digitalmars.com wrote:
If I google for adapt for D I'll get a hopeless mess of irrelevant
links. duck typing for D should be much better. Remember that google
ranks pages by relevance, and searching for duck will give higher
On 10/16/2010 09:56 PM, klickverbot wrote:
On 10/16/10 9:47 PM, Andrei Alexandrescu wrote:
Thanks for the input. This is not a bug, it's what I believe to be a
very intentional feature: strings are not ordinary arrays because
characters have variable length. As such, assigning to the first
On 10/16/2010 02:58 PM, Tomek Sowiński wrote:
Andrei Alexandrescu napisał:
On 10/16/2010 01:39 PM, Steven Schveighoffer wrote:
I suggest wrapping a char[] or wchar[] (of all constancies) with a
special range that imposes the restrictions.
I did so. It was called byDchar and it would accept
On 10/16/2010 02:56 PM, klickverbot wrote:
On 10/16/10 9:47 PM, Andrei Alexandrescu wrote:
Thanks for the input. This is not a bug, it's what I believe to be a
very intentional feature: strings are not ordinary arrays because
characters have variable length. As such, assigning to the first
On 10/16/2010 02:56 PM, klickverbot wrote:
On 10/16/10 9:47 PM, Andrei Alexandrescu wrote:
Thanks for the input. This is not a bug, it's what I believe to be a
very intentional feature: strings are not ordinary arrays because
characters have variable length. As such, assigning to the first
On Sat, 16 Oct 2010 17:28:17 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
On 10/16/2010 02:58 PM, Tomek Sowiński wrote:
Andrei Alexandrescu napisał:
On 10/16/2010 01:39 PM, Steven Schveighoffer wrote:
I suggest wrapping a char[] or wchar[] (of all constancies) with a
On 10/16/2010 03:14 PM, Steven Schveighoffer wrote:
On Sat, 16 Oct 2010 15:51:23 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
On 10/16/2010 01:39 PM, Steven Schveighoffer wrote:
I suggest wrapping a char[] or wchar[] (of all constancies) with a
special range that imposes
On 10/16/2010 03:26 PM, Walter Bright wrote:
It's an example of a phenomenon I've seen over and over. How about the
names Google and Yahoo? Boy did I think they were stupid names for
companies and products. Boy was I wrong. How about the perjorative name
twitter and the hopelessly undignified
On 10/16/2010 03:30 PM, Michel Fortin wrote:
On 2010-10-16 16:05:52 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org said:
On 10/16/2010 02:54 PM, kenji hara wrote:
Adapter-Pattern! I'd have forgotten the name.
It is NOT equals to duck-typing.
It's a subset of duck typing. I don't
On 10/16/2010 03:43 PM, kenji hara wrote:
Yes, it certainly is not a lie.
In Naming Type System, adaptTo extends duck.
But, people who you want to appeal it will think that all of
duck-typings each person imagine possible.
As a result, by knowing duck supports only Adapter-Pattern, they will
be
On 10/16/2010 03:58 PM, Rainer Deyke wrote:
On 10/16/2010 14:02, Walter Bright wrote:
If it's a cringeworthy name, I'd agree. But duck is not cringeworthy.
Fact: I cringe every time I hear duck typing.
Me too, for a long time. Then I had to get used to it because most
everybody was using
totally agreeed. let advertisability to influence a function name is
ridiculous to me. you gotta have some princeple for names, but
advertisability? i dont think so.
On Sunday, October 17, 2010, Steven Schveighoffer schvei...@yahoo.com wrote:
On Sat, 16 Oct 2010 16:26:15 -0400, Walter Bright
On 10/16/2010 04:00 PM, Steven Schveighoffer wrote:
But naming the function that does duck
typing 'duck' doesn't seem to me like it makes or breaks D at all.
You do find it important, otherwise you wouldn't have spent cumulative
hours arguing about it.
Andrei
On 10/16/2010 04:52 PM, Michael Chen wrote:
totally agreeed. let advertisability to influence a function name is
ridiculous to me. you gotta have some princeple for names, but
advertisability? i dont think so.
It is a function, but it implements an entire feature - like e.g.
cast. What if D
Steven Schveighoffer wrote:
On Sat, 16 Oct 2010 16:31:34 -0400, Walter Bright
newshou...@digitalmars.com wrote:
If I google for adapt for D I'll get a hopeless mess of irrelevant
links. duck typing for D should be much better. Remember that google
ranks pages by relevance, and searching for
The very important principle here for the naming is making it obvious that D
supports an element of duck-typing.
Naming it duck! does just that.
Advertisability is not what I would use to describe it. How about clarity,
articulateness, and lucidity?
On Sat, Oct 16, 2010 at 4:52 PM, Michael Chen
Adam D. Ruppe destructiona...@gmail.com wrote in message
news:i9cud5$1um...@digitalmars.com...
Well, it sounds like I'm not the only one who'd find this useful, so I
took a look
at the compiler.
It seems to only store file and line internally (I might have missed
something
though) so the
Andrei Alexandrescu wrote:
On 10/16/2010 03:26 PM, Walter Bright wrote:
A lot of people do think duck typing is very important.
It's the defining feature of Go.
That makes me curious about the etymology of duckduckgo.com !
On 2010-10-16 17:45:56 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org said:
unittest
{
auto x = new Drawable;
auto a = nameone!Widget(x); // works
//auto b = nameone!ColoredWidget(x); // doesn't compile
auto c = nametwo!ColoredWidget(x);
c.draw(); // works
Steven Schveighoffer wrote:
I'm just saying that marketability of D does
not change no matter what appropriate term you choose.
And this is our fundamental disagreement. I think the choices of names matters a
lot.
If names don't matter, why not name your son Sue ? :-)
But were there
On Saturday 16 October 2010 15:06:21 Walter Bright wrote:
Andrei Alexandrescu wrote:
On 10/16/2010 03:26 PM, Walter Bright wrote:
A lot of people do think duck typing is very important.
It's the defining feature of Go.
That makes me curious about the etymology of duckduckgo.com !
I
Current dmd does not enough support runtime reflection.
// test code
class A
{
int quack() { return 10; }
}
void main()
{
Object o = new A();
TypeInfo ti;
ti = typeid(o);
if( auto ti_c = cast(TypeInfo_Class)ti ){
auto members = ti_c.getMembers(quack);
Walter Bright, el 16 de octubre a las 11:16 me escribiste:
Label it adaptTo and few will even notice it. Label it duck and
people will click on the link to see what it does. It's important
that people notice that D has these things, and duck helps with
that.
Well, maybe I'm not people, but I
Funny thing:
void foo(T)(t); // typeless argument
If you don't instantiate the template, it actually compiles. Bug?
--
Tomek
On 16/10/2010 19:27, Paulo Pinto wrote:
Would that make Smalltalk, Lisp, Oberon, Modula-3, Component Pascal, Ada,
Mac Pascal system programming languages?
All of them were used to write operating systems, in some of them the
operating system and
language are the same, kind of.
Well true, but
What's the status quo on member functions defined outside the type?
import std.array;
void main() {
int[] arr = [1,2];
// compiles, should it?
int a = __traits(getMember, arr, front);
// compiles (called popFront), should it?
__traits(getMember, arr, popFront);
//
On 10/16/2010 05:57 PM, kenji hara wrote:
Current dmd does not enough support runtime reflection.
[snip]
I think runtime reflection is not needed. What you'd need to do for the
loose duck is generate code that throws for all interface methods that
are not present in the class. Am I wrong?
On 10/16/2010 05:18 PM, Leandro Lucarella wrote:
Walter Bright, el 16 de octubre a las 11:16 me escribiste:
Label it adaptTo and few will even notice it. Label it duck and
people will click on the link to see what it does. It's important
that people notice that D has these things, and duck
Tomek Sowiński napisał:
What's the status quo on member functions defined outside the type?
import std.array;
void main() {
int[] arr = [1,2];
// compiles, should it?
int a = __traits(getMember, arr, front);
// compiles (called popFront), should it?
On Sun, 17 Oct 2010 04:17:18 +0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
On 10/16/2010 05:57 PM, kenji hara wrote:
Current dmd does not enough support runtime reflection.
[snip]
I think runtime reflection is not needed. What you'd need to do for the
loose duck is
On 10/16/2010 07:50 PM, Denis Koroskin wrote:
On Sun, 17 Oct 2010 04:17:18 +0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
On 10/16/2010 05:57 PM, kenji hara wrote:
Current dmd does not enough support runtime reflection.
[snip]
I think runtime reflection is not needed. What
== Quote from Tomek SowiÅski (j...@ask.me)'s article
Funny thing:
void foo(T)(t); // typeless argument
If you don't instantiate the template, it actually compiles. Bug?
IMHO yes, this is a bug. What you wrote is syntactic sugar for:
template foo(T) {
void foo(t);
}
The rule with
On 10/16/2010 19:26, dsimcha wrote:
The rule with uninstantiated template bodies is that the code needs to be
syntactically correct, but not necessarily semantically correct (since the
semantics can only be fully analyzed on instantiation). void foo(t) looks
syntactically incorrect.
I think
Andrei Alexandrescu, el 16 de octubre a las 19:19 me escribiste:
I hate myself, I just keep replying when I know this matter is closed,
if both you and Andrei like something, is a dead end for any
alternatives...
Well, at least I will be able to say I tried...
How about this: we call
Michel Fortin, el 16 de octubre a las 18:19 me escribiste:
On 2010-10-16 17:45:56 -0400, Andrei Alexandrescu
seewebsiteforem...@erdani.org said:
unittest
{
auto x = new Drawable;
auto a = nameone!Widget(x); // works
//auto b = nameone!ColoredWidget(x); // doesn't compile
On Saturday 16 October 2010 17:03:51 Tomek Sowiński wrote:
What's the status quo on member functions defined outside the type?
import std.array;
void main() {
int[] arr = [1,2];
// compiles, should it?
int a = __traits(getMember, arr, front);
// compiles (called
On 2010-10-16 22:02:35 -0400, Leandro Lucarella l...@llucax.com.ar said:
I agree that nametwo is useless, but what you're proposing is plain
dynamic typing, not duck typing. Duck-typing is what Go (and adaptTo)
does. In dynamic languages you have to check for the methods existence
at runtime
On Sat, Oct 16, 2010 at 1:36 AM, Paulo Pinto pj...@progtools.org wrote:
Maybe you should improve your english skills. I was being sarcastic.
I ran a diagnostic on my English and guess what? It's just fine!
What's not fine is the way Gmail displays threads. At least in my
configuration, it
dsimcha wrote:
== Quote from Steven Wawryk (stev...@acres.com.au)'s article
C and C++ qualify. I'm new to D and still learning about it, but with
the deprecation of scoped classes and delete, I'm not sure that D qualifies.
Why? The elimination of scope and delete just serves to uglyify the
On Sun, 17 Oct 2010 07:22:46 +0400, Steven Wawryk stev...@acres.com.au
wrote:
dsimcha wrote:
== Quote from Steven Wawryk (stev...@acres.com.au)'s article
C and C++ qualify. I'm new to D and still learning about it, but with
the deprecation of scoped classes and delete, I'm not sure that D
C does allow allocation on the stack. But of course you're right that
it doesn't have constructors/destructors, nor classes and OO. It's
interesting that device drivers for linux use a (partial) manual
implementation of polymorphism and require a lot of boilerplate.
so wrote:
C doesn't
On Sat, 16 Oct 2010 08:59:10 -0500
Andrei == Andrei Alexandrescu wrote:
Andrei Yah. Emacs' formatting abilities are like real estate prices in
Andrei Houston: once you got calibrated to them, it's hard to move
Andrei away.
It looks there is no perfect IDE for D available (yet) - Qt is missing
D
On Fri, 15 Oct 2010 17:46:03 -0700
Jonathan M Davis jmdavisp...@gmx.com wrote:
On Friday, October 15, 2010 12:50:53 spir wrote:
Hello,
A few questions raised by a single func.
===
alias char[] Text ;
Text letters = ['a','b','c',...] ;
Text[] nameSet (uint
On Saturday 16 October 2010 02:24:11 spir wrote:
1. In the inner loop generating name, I have found neither a way to
feed directly ints into name, nore a way to cast ints to chars using
to! (also found no chr()). So, I had to list letters. But this
wouldn't work with a wide range of
spir denis.s...@gmail.com wrote:
===
alias char[] Text ;
Text letters = ['a','b','c',...] ;
Text[] nameSet (uint count , uint size) {
/* set of count random names of size size */
Text[] names ; names.length = count ;
Text name ; name.length = size ;
Hello!
I've been trying to strip an executable created with DMD from symbols. Has
anyone any experience with this?
I can't seem to rid my execs of more or less containing the entire class-tree.
Example:
// sym.d - - - -
import std.stdio;
class Bunny{
int x;
int getX()
..ok, I got bored and installed Ubuntu I tried it, and there it worked fine!
# strip sym
# nm sym | grep Bunny
nm: sym: no symbols
# _
Great! The program runs fine too.
(And the binary went from a size of 399Kb to 191Kb! Woah! That's more than half
gone!)
Hm, but how to I go about his now?
On Fri, 15 Oct 2010 15:50:53 -0400, spir denis.s...@gmail.com wrote:
Hello,
A few questions raised by a single func.
===
alias char[] Text ;
Text letters = ['a','b','c',...] ;
Text[] nameSet (uint count , uint size) {
/* set of count random names of size size */
On 10/16/10 10:13 PM, klickverbot wrote:
---
import std.algorithm;
import std.stdio;
enum INPUT = cqrb lryqna rb fjh, fjh qjamna cqjw axc cqracnnw. qnan,
hxd wnena twxf qxf oja cx bqroc! xq kh cqn fjh, cqn jwbfna rb
mnjmvjwblqnbc.;
void main() {
foreach ( offset; 0..25 ) {
writeln( map!( (
Forget it, I took this directly to bugzilla:
http://d.puremagic.com/issues/show_bug.cgi?id=5064
http://d.puremagic.com/issues/show_bug.cgi?id=5062
Summary: Problem with a string slicing
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Keywords: rejects-valid
Severity: normal
http://d.puremagic.com/issues/show_bug.cgi?id=5056
Steven Schveighoffer schvei...@yahoo.com changed:
What|Removed |Added
CC|
http://d.puremagic.com/issues/show_bug.cgi?id=5063
Summary: Stronger typedef for size_t
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: accepts-invalid
Severity: enhancement
http://d.puremagic.com/issues/show_bug.cgi?id=5056
nfx...@gmail.com changed:
What|Removed |Added
CC||nfx...@gmail.com
--- Comment #4
http://d.puremagic.com/issues/show_bug.cgi?id=5056
--- Comment #5 from Steven Schveighoffer schvei...@yahoo.com 2010-10-16
10:43:10 PDT ---
(In reply to comment #4)
The really bad thing is that D doesn't allow you to set up a sub class before
calling the super constructor. Consider this:
http://d.puremagic.com/issues/show_bug.cgi?id=3578
Shin Fujishiro rsi...@gmail.com changed:
What|Removed |Added
CC||rsi...@gmail.com
---
http://d.puremagic.com/issues/show_bug.cgi?id=5056
--- Comment #7 from Steven Schveighoffer schvei...@yahoo.com 2010-10-16
12:09:12 PDT ---
(In reply to comment #6)
(In reply to comment #5)
Hm... I just tried it, it does work. Were you thinking of something else?
This confuses me. It
http://d.puremagic.com/issues/show_bug.cgi?id=5056
--- Comment #8 from Sobirari Muhomori dfj1es...@sneakemail.com 2010-10-16
12:26:11 PDT ---
see bug 3393
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
http://d.puremagic.com/issues/show_bug.cgi?id=3393
nfx...@gmail.com changed:
What|Removed |Added
CC||nfx...@gmail.com
http://d.puremagic.com/issues/show_bug.cgi?id=5064
Summary: Crash related to std.algorithm.map, delegates, and
casts
Product: D
Version: D2
Platform: x86_64
OS/Version: Linux
Status: NEW
Severity:
http://d.puremagic.com/issues/show_bug.cgi?id=5064
klickverbot c...@klickverbot.at changed:
What|Removed |Added
Keywords||wrong-code
---
http://d.puremagic.com/issues/show_bug.cgi?id=5064
--- Comment #2 from klickverbot c...@klickverbot.at 2010-10-16 13:58:43 PDT
---
The crash does not occur if the executable is compiled with -inline.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You
http://d.puremagic.com/issues/show_bug.cgi?id=4666
--- Comment #3 from bearophile_h...@eml.cc 2010-10-16 15:34:55 PDT ---
It's important to give a good textual representation to Tuples, to avoid a very
cluttered textual output. On the other hand defining a printing function to
print tuples is
http://d.puremagic.com/issues/show_bug.cgi?id=3578
--- Comment #3 from Leandro Lucarella llu...@gmail.com 2010-10-16 16:06:59
PDT ---
(In reply to comment #2)
It's undocumented, but struct invariants are fired on pointers:
struct S
{
invariant() { assert(0); } //
http://d.puremagic.com/issues/show_bug.cgi?id=5065
Summary: writefln(%f of a Tuple prints a result
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Keywords: accepts-invalid
Severity: normal
http://d.puremagic.com/issues/show_bug.cgi?id=5066
Summary: Array back(set) method would crash when have none
elements
Product: D
Version: D2
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
http://d.puremagic.com/issues/show_bug.cgi?id=5066
--- Comment #1 from galaxylang galaxyl...@gmail.com 2010-10-16 22:24:55 PDT
---
(In reply to comment #0)
import std.container;
int main(char[][])
{
array!int ar;
ar.back=1;
//the back(T){} method will enforce(!this.empty),so
http://d.puremagic.com/issues/show_bug.cgi?id=5067
Summary: no way to re-parameter a template a class when in some
special scope
Product: D
Version: D2
Platform: Other
OS/Version: All
Status: NEW
http://d.puremagic.com/issues/show_bug.cgi?id=5067
--- Comment #1 from galaxylang galaxyl...@gmail.com 2010-10-16 22:43:28 PDT
---
there are some different?i am not sure
class A(alias T)
{
}
and
class B(T)
{
}
//i think if there are different,can be solve the question i mentioned
class
101 - 183 of 183 matches
Mail list logo