On Thursday, 17 August 2023 at 14:14:00 UTC, bachmeier wrote:
On Thursday, 17 August 2023 at 09:28:05 UTC, Joel wrote:

I get an compile time error with sort after using toLower, putting in array before sort, didn’t work:

    ```d
    void main() {
        Import std;

        "EzraTezla"
            .to!(char[])
            .byCodeUnit
            .map!(std.uni.toLower)
            .sort!"a<b"
            .writeln;
    }
    ```

It works for me. Modifying your code to

```
void main() {
    import std;

    "EzraTezla"
        .to!(char[])
        .byCodeUnit
        .map!(std.uni.toLower)
        .array
        .sort!"a<b"
        .writeln;
}
```

compiles and gives the expected output. https://run.dlang.io/is/85VjiL

```d
void main() {
    import std;

    "EzraTezla"
        .to!(char[])
        .byCodeUnit
        .map!(std.ascii.toLower)
        .array
        .sort!"a<b"
        .writeln;
}
```

std.uni.toLower works, but not ascii. Ascii works with bycode after map, though.

/Library/D/dmd/src/phobos/std/algorithm/sorting.d(1936): Error: static assert: "When using SwapStrategy.unstable, the passed Range 'char[]' must either fulfill hasSwappableElements, or hasAssignableElements, both were not the case" once.d(9): instantiated from here: `sort!("a<b", SwapStrategy.unstable, char[])`

Reply via email to