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[])`