ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ASCII, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΊΡΡΡΡ. ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ, Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΡΠΎΡΠ° ΡΠ΄Π°Π»Π΅Π½Ρ.
/cc @rust-ΡΠ·ΡΠΊ/ΡΠ·ΡΠΊ
Π²ΡΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅
ΠΊΠΎΠΏΠΈΡ @SimonSapin
ΠΠΈΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΠ°ΠΊ: http://www.unicode.org/reports/tr31/ ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π² ΡΡΠΎΠΌ ΡΠΎΠ΄Π΅.
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ, Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡ ΡΠ΅Π±Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΡΡΡΠΏΠ°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
Π― ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ ΠΏΠΎ Unicode ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈΠ»ΠΈ ΠΊΡΠΈΡΠΈΠΊΡ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ. ΠΠ»ΠΈ ΡΡΠΎ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π°?
@SimonSapin
C ΠΈ C++ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ http://unicode.org/reports/tr31/#Alternative_Identifier_Syntax (Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ), ΠΈ Ρ Π½Π΅ Π²ΠΈΠ΄Π΅Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΡΠΎ Π½Π° ΡΠΎΡΡΠΌΠ°Ρ
isocpp ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ°Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ :)
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1518.htm
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² Clang: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/UnicodeCharSets.h?view=markup
ΠΊΠΎΠΏΠΈΡ https://github.com/rust-lang/rust/issues/4928
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ ΡΠ½ΠΈΠΊΠΎΠ΄Π° mod
Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Π² OS X, IIRC), Π½ΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΡΠ»ΠΊΡ Π·Π΄Π΅ΡΡ: https://github.com /rust-lang/rust/issues/2253. (Π Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΈΠ½Π»Π°ΠΉΠ½ΠΎΠ²ΡΠ΅ mod
s ΠΈ extern crate
s ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π² ASCII)
ΠΠ°, #2253 β ΡΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΌΠ½Π΅ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ Unicode.
(ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ°; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ _ΠΌΠΎΠ³Π»ΠΈ_ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π° Π΄ΡΡΠ³ΠΎΠΉ - Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ².)
ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΡΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ RFCS, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° https://github.com/rust-lang/rfcs/issues/802 .
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠ΅ΡΡ RFC.
Π― ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ (ΠΈΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π²Π°Π½ΠΈΠ΅ ΠΈ Ρ.Β Π΄.) ΡΠ»ΡΠ·Π° ΡΡΠ½ΠΊΡΠΈΠΉ non_ascii_idents
.
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π½Π° ΡΠΎΠ±ΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ lang ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π΄Π°, RFC Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ Rust. ΠΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΡΠ½ΡΠΉ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ½Π΅ΡΡΠΈ Π΄ΠΎ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½Π°Ρ, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π²Π·Π»Π°ΠΌΡΠ²Π°ΡΡΠΈΡ Rust, Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅-ASCII.
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°: P-Π½ΠΈΠ·ΠΊΠΈΠΉ
ΠΠΎΠΌΠ΅ΡΠΊΠ° Β«Π½ΠΈΠ·ΠΊΠ°ΡΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ RFC ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΡΠ΅Π±ΡΡΡΠ΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
Π JavaScript, Perl 5 ΠΈ Perl 6 ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π°.
JavaScript (Π€Π°ΠΉΡΡΠΎΠΊΡ 50)
function Π‘Π»ΠΎΠ²ΠΎ(ΡΡΠΎΠΉΠ½ΠΎΡΡ) {
this.ΡΡΠΎΠΉΠ½ΠΎΡΡ = ΡΡΠΎΠΉΠ½ΠΎΡΡ;
}
var Π·Π΄ΡΠ°ΡΡΠΈ = new Π‘Π»ΠΎΠ²ΠΎ("ΠΠ΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ");
console.log(Π·Π΄ΡΠ°ΡΡΠΈ.ΡΡΠΎΠΉΠ½ΠΎΡΡ) //ΠΠ΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ
ΠΠ΅ΡΠ» >=5.12
use utf8;
{
package Π‘Π»ΠΎΠ²ΠΎ;
sub new {
my $self = bless {}, shift;
$self->{ΡΡΠΎΠΉΠ½ΠΎΡΡ} = shift;
$self
}
};
my $Π·Π΄ΡΠ°ΡΡΠΈ = Π‘Π»ΠΎΠ²ΠΎ->new("Π·Π΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ");
say ucfirst($Π·Π΄ΡΠ°ΡΡΠΈ->{ΡΡΠΎΠΉΠ½ΠΎΡΡ}); #ΠΠ΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ
Perl6 (ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Perl. ΠΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ)
class Π‘Π»ΠΎΠ²ΠΎ {
has $.ΡΡΠΎΠΉΠ½ΠΎΡΡ;
}
my $Π·Π΄ΡΠ°ΡΡΠΈ = Π‘Π»ΠΎΠ²ΠΎ.new(ΡΡΠΎΠΉΠ½ΠΎΡΡ => 'Π·Π΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ');
say $Π·Π΄ΡΠ°ΡΡΠΈ.tc; #ΠΠ΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ
Π― Π±ΡΠ» Π±Ρ ΡΠ°Π΄ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΠΈ Π² Rust.
Π§ΡΠΎ Π±Ρ ΡΡΠΎ Π½ΠΈ ΡΡΠΎΠΈΠ»ΠΎ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π² ECMAScript 2015 ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β 31 ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΡ Unicode .
Perl Ρ use utf8;
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅, Ρ XID_Start
ΠΈ XID_Continue
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ· UAX # 31.
/ (?[ ( \p{Word} & \p{XID_Start} ) + [_] ])
(?[ ( \p{Word} & \p{XID_Continue} ) ]) * /x
ΠΠ°! Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @SimonSapin!
ΠΠ»Ρ Python ΡΡΠΎ <XID_Start> <XID_Continue>*
.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ASCII, ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅, Π½ΠΎ Π² Π΄Π΅ΡΠ°Π»ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΠ΅Π΅ΡΡβ¦
Π― Π»ΠΈΡΠ½ΠΎ Ρ ΠΎΡΠ΅Π» Π±Ρ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, β (ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ β© ΠΈ βͺ). ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ°Π±ΠΎΡ/ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π² ΠΊΠΎΠ΄ ΡΠ°ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΆΠ°ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΈ ΡΡΡΠ΄Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠ΅ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΡΡΠΎ ΠΈ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΡ ΡΡΠ°ΡΡΠΈ, ΡΠΏΡΠΎΡΡΠΈΠ»Π° Π±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»Π° Π±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΠΌΠΈ ΡΡΠ°ΡΡΠΈ.
Π ΡΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΠΌΡΡΠ» ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ? ΠΠΎΠΌΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΡΡΠΎΠ΄Π»ΠΈΠ²ΡΡ ΡΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ (Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΉ ΡΠ·ΡΠΊ), ΡΡΠΎ Π½Π΅ Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π² ΠΏΠ»Π°Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°. ΠΠ»ΠΈ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ½ΠΈΠΊΠΎΠ΄Π° ΡΠ°Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ½ΠΈΠΊΠΎΠ΄Π°?
@DoumanAsh ΠΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ, ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π‘ΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΈΡ ΠΊΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΌ rustc. ΠΠΎ ΡΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ·ΡΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ.
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π²ΠΈΠΆΡ, Π½Π΅ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π° Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π»ΡΠ΄ΡΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π²Π»Π°Π΄Π΅ΡΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ. ΠΡΡΠ³Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΈΠ½ΠΎΡΡΡΠ°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ Π½Π°Π΄ΠΏΠΈΡΡΡ Β«pΕΓjmenΓΒ», Π½ΠΎ Π²Ρ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«ΡΠ°ΠΌΠΈΠ»ΠΈΡΒ», ΡΡΠΎ ΡΡΡΠ°Π½Π½ΠΎ. ΠΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ°Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«rodnΓ©_ΔΓsloΒ» (ΡΠ΅ΡΡΠΊΠΈΠΉ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Ρ ΠΏΠΈΡΠ°Π» ΡΠ΅ΡΡΠΊΠΎΠ΅ Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΈΠ»ΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ Π±Π΅Π· Π²Π΅ΡΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΠΊΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΠΈΠ½Π³Π²ΠΈΡΡΠ°ΠΌ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΡΠ°ΡΠΈΡ IPA Π² ΠΈΠΌΠ΅Π½Π°Ρ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
. ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² IPA ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΌΠ΅Ρ
ΠΎΡΠ²ΠΎΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π²ΡΠΊ r Π² Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠΌ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π² ΡΠ»ΠΎΠ²Π΅ red ΡΡΠ°Π½ΡΠΊΡΠΈΠ±ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» ΙΉΜ , Π½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ°Π»ΡΠ²Π΅ΠΎΠ»ΡΡΠ½ΡΠΌ ΡΠ΅ΡΡΠΎΡΠ»Π΅ΠΊΡΠΈΠ²Π½ΡΠΌ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠ°Π½ΡΠΎΠΌ. https://en.wikipedia.org/wiki/Alveolar_and_postalveolar_compilers ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ΅ΡΡ, Ρ ΠΌΠΎΠ³ Π±Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ fn say_ΙΉΜ ()
Π²ΠΌΠ΅ΡΡΠΎ fn say_post_alveolar_retroflexive_approximant()
.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅ ΠΌΠ½Π΅Π½ΠΈΡ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π΄ΠΈΡΠΊΡΡΡΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ Unicode ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΠΎΠ³Ρ Π»ΠΈ Ρ Π½Π°Π·Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ priceβ¬
? ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅Ρ, Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ price$
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ? ΠΠΎΠ³Ρ Π»ΠΈ Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡ β![] Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π²Π΅ΠΊΡΠΎΡΠΎΠ²? Π― Π·Π½Π°Ρ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ
ΠΎΡΠ΅ΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½ΠΎ β β ΡΡΠΎ Β«ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Β» http://www.fileformat.info/info/unicode/char/2192/index.htm . ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, rust Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΡΡΠΏΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠΎΠ΄Π°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π±ΡΠΊΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ.
@timthelion Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Rust Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠΏΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠΎΠ΄Π°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π±ΡΠΊΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ β ΠΎΠ½ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ½ΠΈΠΊΠΎΠ΄Π° XID_Start ΠΈ XID_Continue , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ .
say_ΙΉΜ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈ 'ΙΉ'
, ΠΈ 'Μ '
ΡΠ²Π»ΡΡΡΡΡ XID_Continue.priceβ¬
ΠΈ price$
Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 'β¬'
ΠΈ '$'
Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ XID_Continue.β![]
Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 'β'
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ XID_Start.pΕΓjmenΓ
ΠΈ rodnΓ©_ΔΓslo
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ.@dtolnay ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅. ΠΠ°Π΄Π΅ΡΡΡ, Π²Ρ Π½Π΅ ΠΎΠ±ΠΈΠ΄Π΅Π»ΠΈΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ ΡΠΏΠΎΡΡΠ΅Π±ΠΈΠ» ΡΠ»ΠΎΠ²ΠΎ Β«ΡΡΠΏΠΎΠΉΒ», Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ.
ΠΠ΅Ρ, ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Π΅Π»ΠΈΠΊΠΈΠ΅ ΡΠΌΡ Π΄ΡΠΌΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΈ Ρ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π»ΡΠ΄Π΅ΠΉ ΠΈΠ· ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° Unicode Π±ΡΠ»ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΈ Ρ Π²Π°Ρ.
Π― ΠΌΠΎΠ³Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠ²Π° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΡΠ΄Π½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ³ΡΠ°ΠΌ, ΠΌΠ΅ΡΡΠ½ΡΠΌ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΡΠ»Π°ΠΉΠ½-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ) ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ Π±Π»ΡΠ΄, ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π³Π΅ΡΠΎΠ΅Π², Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ , Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠ²Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π°Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ²ΠΎΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΡΡΡΠ°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, Π΅ΡΠ»ΠΈ ΠΈΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΌΠ½Π΅Π½ΠΈΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Π΅Π². ΠΡΡΠ°Π»ΠΎΡΡ Π²ΡΡΡΠ½ΠΈΡΡ Π΄Π΅ΡΠ°Π»ΠΈ:
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠΎΠ³Π»Π°ΡΡΡΡΡΡ Ρ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ β 31 ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΡ Unicode, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ Π² Π΄Π΅ΡΠ°Π»ΡΡ . Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΠ΅ΠΌ Π²ΡΠ·Π²Π°Π½Ρ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π΄Π»Ρ Rust.
https://rosettacode.org/wiki/Unicode_variable_names ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ².
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ @SimonSapin - Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½Π°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ) Π½Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ. Π― ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ, ΠΊΡΠΎ ΡΠΎΠ±ΠΈΡΠ°Π» Π±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π΄Π°Π²Π°Π» ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ. Π― ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π»ΡΠ±ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Ρ ΠΎΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» Π±Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΌΡ -ΡΠΎ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½ΡΡ (Π² ΠΈΠ΄Π΅Π°Π»Π΅, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Unicode, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ·ΡΠΊΡ), ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ».
@nikomatsakis ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π»ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π²ΠΎΠ·ΡΠΌΠ΅ΡΡΡ Π·Π° ΡΡΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ ΠΌΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π·Π°Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ, ΡΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΡ UAX # 31 (ΡΡΠΎ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠ΅Π»ΡΡ). ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π΅Π»Π°Π΅Ρ) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΡΠΎΠΉΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡ RFC Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. (ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΡΡΡΡΡ/ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π±ΡΠ΄ΡΡΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Unicode ΠΈ Ρ. Π΄.) Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΎΠΌΡ, ΠΊΡΠΎ ΠΏΠΈΡΠ΅Ρ ΡΡΠΎΡ RFC, ΠΏΡΠΎΡΠΈΡΠ°ΡΡ UAX 31 ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ) ΠΏΡΠΎΡΠΈΠ»Ρ PRECIS [1] Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ Π½Π°ΠΌ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Unicode), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΈ ΠΊΡΠ°ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Rust.
Π― Π½Π΅ Π·Π½Π°Ρ ΠΎ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ ΡΡΠ΅Π΄Ρ PRECIS Π½Π° Rust (Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Unicode, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Π½ΠΎ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅).
Π― Π±Ρ Π½Π΅ Π½Π°Π·Π²Π°Π» ΡΠ΅Π±Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ, Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΠ³ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ PRECIS ΠΈ Π² ΡΠ΅Π»ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌ Ρ RFC ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΊΠ°ΠΌΠ½ΡΠΌΠΈ ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π±ΡΠ» Π±Ρ ΡΠ°Π΄ ΠΏΠΎΠΌΠΎΡΡ (ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΠ΅ PRECIS) Π³Π΄Π΅ Π½ΡΠΆΠ½ΠΎ.
[1] [RFC 7564] (https://tools.ietf.org/html/rfc7564): Π‘ΡΡΡΠΊΡΡΡΠ° PRECIS: ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊ Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Ρ
Π₯ΠΎΡΠΎΡΠ°Ρ ΠΌΡΡΠ»Ρ ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΠΎΡ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΡΡΠ°ΡΡΡ ΠΏΠΎ Π²ΠΎΠΏΡΠΎΡΡ
https://en.wikipedia.org/wiki/Duplicate_characters_in_Unicode
ΠΠΎΡ ΡΡΠ°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ·
Π°Π·ΠΈΠ°ΡΡΠΊΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ:
https://people.w3.org/rishida/scripts/chinese/
11.04.2017, 21:01, Π‘ΡΠΌ Π£Π°ΠΉΡΠ΄ Π½Π°ΠΏΠΈΡΠ°Π»:
>
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ) ΠΏΡΠΎΡΠΈΠ»Ρ PRECIS [1]
Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ,
Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Unicode), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ
ΡΠ΅ΡΠΊΠΈΠΉ ΠΈ ΠΊΡΠ°ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Rust
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.Π― Π½Π΅ Π·Π½Π°Ρ ΠΎ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ PRECIS Π½Π° Rust.
framework (ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Unicode, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ
Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Ρ Π΄ΡΠΌΠ°Ρ, Π½ΠΎ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ
ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅).[1] RFC 7564 https://tools.ietf.org/html/rfc7564 : ΠΠ»Π°ΡΡΠΎΡΠΌΠ° PRECIS:
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊ
Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉβ
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°Ρ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/rust-lang/rust/issues/28979#issuecomment-293367700 ,
ΠΈΠ»ΠΈ Π·Π°Π³Π»ΡΡΠΈΡΡ ΡΠ΅ΠΌΡ
https://github.com/notifications/unsubscribe-auth/ABU7-IMgXefW2yZYyM0tn8qLhpGFw0bSks5ru84GgaJpZM4GM3Lj .
@SamWhited ΠΠΎΡΠ΅ΠΌΡ PRECIS Π²ΠΌΠ΅ΡΡΠΎ Unicode NFC ΠΈΠ»ΠΈ NFKC?
ΠΠΎΡΠ΅ΠΌΡ PRECIS, Π° Π½Π΅ NFC ΠΈΠ»ΠΈ NFKC Unicode?
TL:DR β ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ. ΠΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ (ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ) Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ.
@SimonSapin ΠΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Unicode β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ Π² ΠΏΡΠΎΡΠΈΠ»Π΅ PRECIS (ΡΠ°ΠΊ ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, NFC, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ), ΠΎΠ΄Π½Π°ΠΊΠΎ PRECIS ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ Π²Π΅ΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΌΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠΈΠ½Ρ (Ρ ΡΠ°ΠΊ Π΄ΡΠΌΠ°Ρ?), ΠΏΠΎΡΡΠΎΠΌΡ FullWidth
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΡΡΠΎ ΠΈ οΌ¦ο½ο½ο½οΌ·ο½ο½ο½ο½
. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ
ΠΎΡΠ΅Ρ Π½Π°Π±ΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ (ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π²ΠΎΡΡΠΎΡΠ½ΠΎΠ°Π·ΠΈΠ°ΡΡΠΊΠΈΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, ΡΠ΅ΠΌ Ρ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ, ΠΌΠΎΠ³ Π±Ρ Π·Π²ΠΎΠ½ΠΈΡΠ΅ ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΊΠ°ΠΆΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠΈΠ»Ρ PRECIS ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΠΊΠ², ΡΠΈΡΡ, Π΄Π΅ΡΠΈΡΠΎΠ² ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π±ΡΠΊΠ²Ρ ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π² ΡΡΠΎΠΌ ΡΠΎΠ΄Π΅).
_ΠΡΠΊΠ°Π· ΠΎΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ:_ Π― Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π΄ΡΠΌΠ°Π», Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ; ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π°ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅; Go ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΠΈΠΌΠ΅ΡΡ Π»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ letter ΠΈΠ»ΠΈ number, Ρ Π΄ΡΠΌΠ°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎ ΡΠΎΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ Π΄Π»Ρ Π½Π°Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π΄ΡΠΌΠ°ΡΡ.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΡΠ΅Π½ΠΈΠ΅: ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Go (ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ», ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ): https://golang.org/ref/spec#Source_code_representation
Π§ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ PRECIS? ΠΡΡΡ Π»ΠΈ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
Π§ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ PRECIS? ΠΡΡΡ Π»ΠΈ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ, ΠΊΡΠΎΠΌΠ΅ Go .
Π‘Π²ΡΠ·Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Go 2: golang/go#16033
ΠΠΎ Π²ΡΠΎΡΠ½ΠΈΠΊ, 11 Π°ΠΏΡΠ΅Π»Ρ 2017 Π³., Π² 14:07:49 -07:00 Π‘ΡΠΌ Π£Π°ΠΉΡΠ΄ Π½Π°ΠΏΠΈΡΠ°Π»:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΌΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΈΡΠΈΠ½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ
FullWidth
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΡΡΠΎ ΠΈοΌ¦ο½ο½ο½οΌ·ο½ο½ο½ο½
.
NFKC Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ:
Python 3.6.0 (default, Jan 16 2017, 12:12:55)
[GCC 6.3.1 20170109] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> οΌ¦ο½ο½ο½οΌ·ο½ο½ο½ο½ = 1
>>> FullWidth
1
--
Π‘ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡΠΌΠΈ,
lilydjwg
@SamWhited , Π² Π²Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ Ρ Π½Π°Ρ ΠΎΠΆΡ:
identifier = letter { letter | unicode_digit } .
letter = unicode_letter | "_" .
ΠΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΡΠ΄ΠΈΡΡ, Go Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PRECIS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
ΠΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΡΠ΄ΠΈΡΡ, Go Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PRECIS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
@SimonSapin ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ; Π½Ρ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΡΠΎ ΠΈΠ΄Π΅Ρ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π΄ΡΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ (ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΡ ΡΡΡΠ»ΠΊΡ, ΠΈ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΏΠ»ΠΎΡ ΠΎ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π°; Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π» ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΡΠΎΡΡΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ, ΠΊΡΠΎΠΌΠ΅ Go, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ ASCII).
@SimonSapin
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΡΠΎΠΉΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡ RFC Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
π
Π― ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ°Π» UAX #31 , ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ PRECIS Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΎΡΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ: ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°Π· ΠΎΡ stringprep ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ PRECIS, ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ± Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΉ Unicode ( ΠΏΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ ΡΠΎΡΠ΅ΠΊ, Π° Π½Π΅ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ).
Π₯ΠΎΡΡ TR31 ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β« Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Β», ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠ½ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° PRECIS, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ, Π½ΠΎ Π±Π΅Π· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ PRECIS Π΄Π°Π΅Ρ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ (Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ?), ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΡΡΠΊΡΡΡΠΎΠΉ PRECIS, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ΅ΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΈΠ³ΠΌΡ, ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² Π²ΠΎΠΊΡΡΠ³ Ρ Π°Π½Π³ΡΠ»Ρ Π΄ΠΆΠ°ΠΌΠΎ (ΠΎΠΏΡΡΡ ΠΆΠ΅, Ρ Π½Π΅ ΡΠΊΡΠΏΠ΅ΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ , Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ PRECIS, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ).
ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΉ Unicode (ΠΏΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ ΡΠΎΡΠ΅ΠΊ, Π° Π½Π΅ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ).
Π― Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ. XID_Start
ΠΈ XID_Continue
ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
Π― Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ. XID_Start ΠΈ XID_Continue ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ³Π΄Π° Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ» UAX 31; ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Unicode. ΠΠ΅ΡΠ΅ΡΠΈΡΡΠ²Π°Ρ, Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΎΡΠΊΡΠ΄Π° Ρ ΡΡΠΎ Π²Π·ΡΠ».
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π·Π°ΠΏΠΈΡΠ°Π² ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΡΡΠ°Ρ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ξ (Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ) ΠΏΡΠΎΡΠΈΠ² Ξ΄ (Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ) Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π°. ΠΠΈΠ½ΡΠ΅Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ /Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ/, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π·Π΄Π΅ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ.
ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΌΠ°ΠΉΠ»ΠΈΠΊΠΈ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ XID Start/Continue, ΠΊΠ°ΠΊ Π² Swift?
@fwrs , ΡΠΌΠΎΠ΄Π·ΠΈ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠΌΠΎΠ΄Π·ΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΌΠΎΠ΄Π·ΠΈ (ZWJ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ²Π΅ΡΠ° ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΈΠ΄Π½Ρ Π½Π΅Π²ΠΎΠΎΡΡΠΆΠ΅Π½Π½ΡΠΌ Π³Π»Π°Π·ΠΎΠΌ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Emoji Π±ΡΡΡΡΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π±ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌΠΈ.
Π’Π°ΠΊ ΡΡΠΎ, Ρ ΠΎΡΡ ΡΡΠΎ ΠΌΠΈΠ»ΠΎ, Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ ΡΠ΅Π»ΡΠΌΠΈ Rust. ΠΠΎ ΡΠ·ΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²/ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΆΠ°Π²ΡΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΌΠΎΠ΄Π·ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
@ryankurte Π Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΅ΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Π²Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΡΠΌΡΠ»Ρ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ U + 0394 ΠΠ ΠΠ§ΠΠ‘ΠΠΠ― ΠΠΠΠΠΠΠΠΠ― ΠΠ£ΠΠΠ ΠΠΠΠ¬Π’Π, Π° Π½Π΅ U + 2206 ΠΠ ΠΠ ΠΠΠΠ’ΠΠ. ΠΠ΅ΡΠ²Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΠΊΠ²ΠΎΠΉ Π³ΡΠ΅ΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ° ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°; ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠ²ΡΠΌ.
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠ²ΡΠ·Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: https://github.com/rust-lang/rust/issues/4928#issuecomment -343137316
Π― Π½Π΅ Π²ΠΈΠ΄Π΅Π» Π·Π΄Π΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π°ΡΠ°ΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΠΎΠΌΠΎΠ³Π»ΠΈΡΠΎΠ² (Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΠ» ΠΎ Π½ΠΈΡ , ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° ΡΡΠΌ), Π½ΠΎ Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΠΎΠ±ΡΡΠ²ΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ , ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ lint, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΡΠΎΠΌΡ:
#![feature(non_ascii_idents)]
fn main() {
let a = 2;
let Π° = 3;
assert_eq!(a, 2); // OK
assert_eq!(Π°, 3); // OK
}
Π Π΄Π²ΡΡ
ΡΠ»ΠΎΠ²Π°Ρ
, ΡΡΠΈ Π΄Π²Π° a
ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΡΠ½ΠΈΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° let Π½Π΅ Π·Π°ΡΠ΅Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ, ΠΈ ΠΎΠ±Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΎΡ
ΠΎΠ΄ΡΡ (ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ ΠΈΠ³ΡΠΎΠ²Π°Ρ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ½ΠΈΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ; ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ).
ΠΡΠ° Β«ΡΡΠ½ΠΊΡΠΈΡΒ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ»ΠΎΠΉΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Rust, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΄Π½Π΅Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΡΠ΅Π½Π΅Π²ΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ let ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Rust, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Ρ.
PS: ΡΡΠ° Β«ΡΠΈΡΠ°Β» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² Π·Π°ΠΊΡΠ»ΠΈΡΠ½ΡΡ
ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡΡ
ΠΏΠΎ Rust, Ρ
ΠΎΡΡ ΡΡΠ° #![feature(non_ascii_idents)]
Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·Π²Π°ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ :)
@gnzlbg Π― ΠΏΠΎΠ»Π°Π³Π°Ρ , ΡΡΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ»ΠΈ Π²Π°ΡΠΈ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ Π½Π° Π³ΡΠ΅ΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Π½ΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ ΡΡΠΎ ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ; Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Ρ Π½Π°Ρ Π΅ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.
Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠΎΠΊΠΎΠ΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π½Π° Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ Π½Π΅ ΠΏΡΠ΅ΡΠ΅ΡΠΏΠ΅Π» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ RFC. ΠΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ Π²ΠΎΠ»Π½ΡΠ΅Ρ, ΡΡΠΎ Rust ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊΠΎΠΌ 21-Π³ΠΎ Π²Π΅ΠΊΠ°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Unicode, ΠΈ ΡΡΠΎ Rust Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π΅Π½ ΠΊ Π½Π΅ Π³ΠΎΠ²ΠΎΡΡΡΠΈΠΌ ΠΏΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ. Π§Π΅Π³ΠΎ ΠΌΠ½Π΅ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ RFC.
@ΠΠ΅ΡΡΡΠ±Π°Π½
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ»ΠΈ Π²Π°ΡΠΈ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ Π½Π° Π³ΡΠ΅ΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Π½ΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ ΡΡΠΎ ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ.
Π΄Π°, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» @oli-obk Π² ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ clippy, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Rust Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Π±Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ°Π½ΠΈΡΡ:
http://www.unicode.org/Public/security/revision-06/confusables.txt
ΠΡΠ°ΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΠΎΠΌΠΎΠ³Π»ΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π½ΠΎ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ.
@ΠΠ΅ΡΡΡΠ±Π°Π½
ΠΡΠ»ΠΈ Π²Π°Ρ ΡΡΠΎ Π²ΠΎΠ»Π½ΡΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ½ΠΈΠΊΠΎΠ΄ Π² ΡΠ²ΠΎΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°Ρ , ΠΈ ΡΡΠΈ ΡΠ·ΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡ RFC. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Ρ . ΠΡΠΎ Π·Π½Π°Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡ Ρ ΠΎΡΠ·ΡΠ²Π°ΠΌΠΈ Π² ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ RFC Π½Π° ΡΠΎΡΡΠΌΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΎΡΠ³Π°Π½ΠΎΠ²? Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ/ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ, ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Ρ ΡΡΠΎ ΡΠ·Π½Π°Π΅ΡΠ΅, Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠΉ RFC.
Π ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΌΡ Π½Π°Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π½Π΅ΠΌΡΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ASCII. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Unicode β ΡΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ΄Π»ΠΈΠ²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ NFKC Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ:
>>> β = 1
>>> H
1
>>> β
¨ = 42
>>> IX
42
>>> β = 23
>>> N
23
>>> import math
>>> β― = math.e
>>> e
2.718281828459045
>>> β¨ = 2
>>> Z
2
@mitsuhiko Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π±ΠΎΠ»Ρ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ΠΉ ΡΡΡΠ΄Π½ΠΎ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ, ΠΈ ΠΎΠ½Π° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°ΠΌ _Π»ΠΈΡΠ½ΠΎ_ Π½Π΅ Π½ΡΠΆΠ½Π°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΊΡΡΠΈΠΉ RFC ΡΠ²Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ NFC Π²ΠΌΠ΅ΡΡΠΎ NFKC ΠΏΠΎΡΠ»Π΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΡ Π½Π° ΡΡΠΈ.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ Π² ΠΏΠΎΠ»ΡΠ·Ρ https://github.com/rust-lang/rust/issues/55467.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π·Π°ΠΏΠΈΡΠ°Π² ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°ΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΡΡΠ°Ρ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ξ (Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ) ΠΏΡΠΎΡΠΈΠ² Ξ΄ (Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ) Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π°. ΠΠΈΠ½ΡΠ΅Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ /Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ/, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π·Π΄Π΅ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ.