I considered suggesting that at first - and maybe that’d be easier/better - but 
I liked the idea of preserving the *intent* of the alias in different 
scenerios. Not sure. That could be hammered out assuming people thought this 
was a good direction to even consider vs. just picking a single name for things 
and having that be that. :)

l8r
Sean


> On Jun 27, 2016, at 3:44 PM, Jeff Kelley <slauncha...@gmail.com> wrote:
> 
> More generically, it could be something like @alias:
> 
>> @alias(filter) func where(…)
> 
> This would allow this particular case to have another name, but also allow 
> for things like alternate spellings.
> 
> 
> Jeff Kelley
> 
> slauncha...@gmail.com | @SlaunchaMan | jeffkelley.org
> 
>> On Jun 27, 2016, at 4:37 PM, Sean Heber via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> And along a similar line of thinking, what about a @termOfArt() attribute 
>> that similarly redefines or provides additional names for things. This way 
>> the name in the standard library/etc would be the “Swift” version of the 
>> name - but there’d be a way to use it and find it even if you’re familiar 
>> with other names for the same feature.
>> 
>> @termOfArt(filter) func where(…)
>> 
>> etc.
>> 
>> There could then be migration tools in Xcode (and others) which do things 
>> like transform all of your termsOfArt usages into the standard Swift 
>> nomenclature if you want to migrate/standardize.
>> 
>> Again, maybe this is silly. On the one hand, I’m not a fan of multiple names 
>> for the same things. On the other hand, sometimes the best name for a thing 
>> depends on context.
>> 
>> l8r
>> Sean
>> 
>> 
>>> On Jun 27, 2016, at 3:19 PM, Sean Heber <s...@fifthace.com> wrote:
>>> 
>>> Here’s a perhaps unlikely “what if” idea that is tangentially related to 
>>> the problem that FP and mathematical names are sometimes weird in Swift and 
>>> often don’t have a place to “live” that makes sense.
>>> 
>>> Let’s say we add an ability to declare a function on a 
>>> struct/protocol/class/enum as a “functionalAlias” (for lack of a better 
>>> name) which creates both a normal method, but also an effectively global 
>>> function of the same (or an alternate given) name for use in functional 
>>> scenarios.
>>> 
>>> Example:
>>> 
>>> struct Float {
>>> @functionalAlias(floor) func roundedDown() -> Float { return … }
>>> }
>>> 
>>> This would allow you to do this:
>>> 
>>> let value: Float = 42
>>> let a = value.roundedDown()
>>> let b = floor(value)
>>> 
>>> Essentially, the compiler generates something sort of like this for you:
>>> 
>>> extension Float {
>>> static func floor(_ v: Float) -> Float { return v.roundedDown() }
>>> }
>>> 
>>> When looking up a global function, the compiler would include these 
>>> generated static functions as if they were top-level functions and proceed 
>>> pretty much like normal. If there is any ambiguity, since the 
>>> auto-generated function are effectively declared as a static inside of 
>>> another type, you could always disambiguate with “Float.floor” if necessary.
>>> 
>>> Obviously this is just brainstorming/talking out loud. Maybe this is silly. 
>>> Maybe it’s terrible. (Probably both.)
>>> 
>>> l8r
>>> Sean
>>> 
>>> 
>>> 
>>>> On Jun 27, 2016, at 2:31 PM, Erica Sadun via swift-evolution 
>>>> <swift-evolution@swift.org> wrote:
>>>> 
>>>> Under consideration is the resolution that  "some terms of art while 
>>>> appropriate to many FP languages, may be better served by using Swift 
>>>> names."
>>>> 
>>>> Consider, for example, `filter(_:)`. Sean Heber writes,
>>>> 
>>>>> Just tossing my vote in the hat for renaming .filter() to something like 
>>>>> .select() since that better matches what it does, IMO. “Filter” is almost 
>>>>> like the opposite word from what it should be since the closure returning 
>>>>> true is what decides what is included in the results, not what is 
>>>>> filtered *from* the results. I mean, yeah, I can kind of understand the 
>>>>> logic either way, but it’s always been one of those strange mental 
>>>>> gymnastics things."
>>>> 
>>>> When asked "Shouldn't there be a term of art exemption for `filter(_:)`. 
>>>> Otherwise why not use `select(where:)`," Dave Abrahams replies:
>>>> 
>>>>> Because `where(...)` is better.
>>>> 
>>>> Have at it.
>>>> 
>>>> -- E
>>>> 
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> swift-evolution@swift.org
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to