I'll be damned if anyone can figure out what song this is:
α ∈ ♀
β ∈ ♂
∴ ¬ς
λ(β)
ω(α)
∴ζ
β ƴ α
α ƴ β
∀x ((x ∈ Ɨ(t)) ∧ (α ∈ Ɨ(t)) ∧ (x ǂ α) → x Ϟ β)
∴(α Ϟ x) ∧ ¬(α ʁ x)
∴ α 어 β
α ∈ Ӝ
∃x (x→ɒ((b τ α) ∧ (b ǂ β)))
∀x (x ∈ ♂ → x Ϟ α)
α ∩ ♂ = ø
α Ϫ (β ∈ ♪)
∀x (x ∈ Ɨ(t) ∧ α ∈ Ɨ(t) → x ƴ ♪)
α φ (α어β)
∃x ((β τ x) ∧ (x ǂ α))
β δ α ∵ γ(α 어 β)
Oh, by the way, font's important for Unicode. I like SimSung. I downloaded Microsoft's unicode fonts, but I noticed all the monospace fonts either drop symbols or greek letters.
On to your song: and thank God it wasn't code I had to fix for a client!
At first I thought it was "The boys are back in town",
then I thought it was a sad love song from way back
where a guy leaves a devestating note in a tree
Now I have no idea.
It's like a Rorschach or a dream, where taking it from the abstract to the concrete tells you what's on someone's mind more than about the objective truth of the set logic.
α ∈ ♀
a boy
β ∈ ♂
a girl
∴ ¬ς
so it's not confusing
λ(β)
he was a star
ω(α)
she was persuasive
∴ζ
but then it went downhill
β ƴ α
he said yes to her
α ƴ β
she said yes to him
∀x ((x ∈ Ɨ(t)) ∧ (α ∈ Ɨ(t)) ∧ (x ǂ α → x Ϟ β)
At the time all her friends disliked him
∴(α Ϟ x) ∧ ¬(α ʁ x)
She rejected him and wasn't in with him
∴ α 어 β
so she broke up with him
α ∈ Ӝ
she was secure
∃x (x→ɒ((b τ α) ∧ (b ǂ β)))
ultimately: some girl-type was on his mind, and it was not her
∀x (x ∈ ♂ → x Ϟ α)
all the guys said forget her
α ∩ ♂ = ø
she had nothing in common with them
α Ϫ (β ∈ ♪)
he gave her a nice gift, in a song
∀x (x ∈ Ɨ(t) ∧ α ∈ Ɨ(t) → x ƴ ♪)
everyone around her at the time said yes to the music
α φ (α어β)
she made a mistake (in breaking up with him)
∃x ((β τ x) ∧ (x ǂ α))
but she was with someone who wasn't him
β δ α ∵ γ(α 어 β)
so he was angry at her so he chose to break up with her
Pretty close!
I abstracted some parts more than others. Some of it is a literal translation from the song, many phrases are left out entirely. It's not a very artsy song; it was on the radio a few years ago. Rock/punk rock.
I'm not sure how Visual Studio does it, but it seems to use Meiryo (which is the new apparently award-winning font that came with Vista) whenever I punch something in that isn't offered by the current font I'm using, which is Consolas. I think it might be because I have my default codepage in Windows set to Japanese.
Either way, until F# code can be written and displayed in TeX or MathML or something, I think we should be conservative with the way we use Unicode -- just because using Unicode itself is still a half-baked solution too.
Topic tags
- f# × 3705
- websharper × 1897
- compiler × 286
- functional × 201
- ui next × 139
- c# × 121
- classes × 97
- web × 97
- .net × 84
- book × 84
- async × 76
- ui.next × 67
- bug × 54
- core × 49
- website × 49
- server × 45
- parallel × 43
- ui × 43
- enhancement × 41
- parsing × 41
- testing × 41
- trywebsharper × 41
- typescript × 37
- html × 35
- javascript × 35
- owin × 35
- asynchronous × 30
- monad × 28
- ocaml × 28
- tutorial × 27
- warp × 27
- haskell × 26
- sitelet × 25
- linq × 22
- workflows × 22
- wpf × 20
- fpish × 19
- introduction × 19
- silverlight × 19
- sitelets × 19
- monodevelop × 17
- rpc × 17
- suave × 17
- piglets × 16
- collections × 15
- feature request × 15
- jquery × 15
- templates × 15
- getting started × 14
- pipeline × 14
- kendoui × 13
- reactive × 12
- 4.1.0.171 × 11
- monads × 11
- opinion × 10
- 4.0.190.100-rc × 9
- deployment × 9
- fixed × 9
- formlets × 9
- in × 9
- json × 9
- plugin × 9
- proposal × 9
- scheme × 9
- solid × 9
- basics × 8
- concurrent × 8
- highcharts × 8
- how-to × 8
- python × 8
- 4.1.1.175 × 7
- complexity × 7
- documentation × 7
- visual studio × 7
- 4.1.2.178 × 6
- lisp × 6
- real-world × 6
- released in 4.0.192.103-rc × 6
- remoting × 6
- resources × 6
- scala × 6
- websharper ui.next × 6
- workshop × 6
- xaml × 6
- 4.0.193.110 × 5
- 4.2.3.236 × 5
- aspnetmvc × 5
- authentication × 5
- azure × 5
- bootstrap × 5
- conference × 5
- dsl × 5
- formlet × 5
- java × 5
- list × 5
- metaprogramming × 5
- ml × 5
- released in Zafir.4.0.188.91-beta10 × 5
- sql × 5
- visualstudio × 5
- websharper.forms × 5
- zafir × 5
- 4.0.192.106 × 4
- 4.0.195.127 × 4
- 4.1.0.38 × 4
- 4.2.1.86 × 4
- 4.2.6.118 × 4
- css × 4
- example × 4
- extensions × 4
- fsi × 4
- fsx × 4
- html5 × 4
- jqueryui × 4
- lift × 4
- reflection × 4
- remote × 4
- rest × 4
- spa × 4
- teaching × 4
- template × 4
- websocket × 4
- wontfix × 4
- 4.0.196.147 × 3
- 4.1.0.34 × 3
- 4.1.6.207 × 3
- 4.2.1.223-beta × 3
- 4.2.11.258 × 3
- 4.2.4.114 × 3
- 4.2.4.247 × 3
- 4.2.5.115 × 3
- 4.2.6.253 × 3
- 4.2.9.256 × 3
- ajax × 3
- alt.net × 3
- aml × 3
- asp.net mvc × 3
- canvas × 3
- cloudsharper × 3
- compilation × 3
- database × 3
- erlang × 3
- events × 3
- extension × 3
- file upload × 3
- forums × 3
- inline × 3
- issue × 3
- kendo × 3
- macro × 3
- mono × 3
- msbuild × 3
- mvc × 3
- pattern × 3
- piglet × 3
- released in Zafir.4.0.187.90-beta10 × 3
- svg × 3
- type provider × 3
- view × 3
- 4.1.1.64 × 2
- 4.1.5.203 × 2
- 4.1.7.232 × 2
- 4.2.10.257 × 2
- 4.2.3.111 × 2
- 4.2.5.249 × 2
- android × 2
- asp.net × 2
- beginner × 2
- blog × 2
- chart × 2
- client × 2
- client server app × 2
- clojure × 2
- computation expressions × 2
- constructor × 2
- corporate × 2
- courses × 2
- cufp × 2
- d3 × 2
- debugging × 2
- direct × 2
- discriminated union × 2
- docs × 2
- elm × 2
- endpoint × 2
- endpoints × 2
- enterprise × 2
- entity framework × 2
- event × 2
- f# interactive × 2
- fable × 2
- flowlet × 2
- formdata × 2
- forms × 2
- fsc × 2
- google maps × 2
- hosting × 2
- http × 2
- https × 2
- iis 8.0 × 2
- install × 2
- interactive × 2
- interface × 2
- iphone × 2
- iteratee × 2
- jobs × 2
- jquery mobile × 2
- keynote × 2
- lens × 2
- lenses × 2
- linux × 2
- listmodel × 2
- mac × 2
- numeric × 2
- oauth × 2
- obfuscation × 2
- offline × 2
- oop × 2
- osx × 2
- packaging × 2
- pattern matching × 2
- performance × 2
- pipelines × 2
- q&a × 2
- quotation × 2
- reference × 2
- released in Zafir.4.0.185.88-beta10 × 2
- rx × 2
- script × 2
- security × 2
- self host × 2
- seq × 2
- sockets × 2
- stm × 2
- tcp × 2
- trie × 2
- tutorials × 2
- type × 2
- url × 2
- var × 2
- websharper.charting × 2
- websharper4 × 2
- websockets × 2
- wig × 2
- xna × 2
- zh × 2
- .net interop × 1
- 2012 × 1
- 4.0.194.126 × 1
- 4.1.3.184 × 1
- 4.1.4.189 × 1
- 4.2.0.214-beta × 1
- 4.2.12.259 × 1
- 4.2.2.231-beta × 1
- 4.2.8.255 × 1
- Canvas Sample Example × 1
- DynamicStyle Animated Style × 1
- Fixed in 4.0.190.100-rc × 1
- Released in Zafir.UI.Next.4.0.169.79-beta10 × 1
- SvgDynamicAttribute × 1
- WebComponent × 1
- abstract class × 1
- accumulator × 1
- active pattern × 1
- actor × 1
- addin × 1
- agents × 1
- aggregation × 1
- agile × 1
- alter session × 1
- animation × 1
- anonymous object × 1
- apache × 1
- api × 1
- appcelerator × 1
- architecture × 1
- array × 1
- arrays × 1
- asp.net 4.5 × 1
- asp.net core × 1
- asp.net integration × 1
- asp.net mvc 4 × 1
- asp.net web api × 1
- aspnet × 1
- ast × 1
- attributes × 1
- authorization × 1
- b-tree × 1
- back button × 1
- badimageformatexception × 1
- bash script × 1
- batching × 1
- binding-vars × 1
- bistro × 1
- body × 1
- bundle × 1
- camtasia studio × 1
- cas protocol × 1
- charts × 1
- clarity × 1
- class × 1
- cli × 1
- clipboard × 1
- clojurescript × 1
- closures × 1
- cloud × 1
- cms × 1
- coding diacritics × 1
- color highlighting × 1
- color zones × 1
- combinator × 1
- combinators × 1
- compile × 1
- compile code on server × 1
- config × 1
- confirm × 1
- content × 1
- context × 1
- context.usersession × 1
- continuation-passing style × 1
- coords × 1
- cordova × 1
- cors × 1
- coursera × 1
- cross-domain × 1
- csla × 1
- current_schema × 1
- custom content × 1
- data × 1
- data grid × 1
- datetime × 1
- debug × 1
- declarative × 1
- delete × 1
- devexpress × 1
- dhtmlx × 1
- dictionary × 1
- directattribute × 1
- disqus × 1
- distance × 1
- do binding × 1
- doc elt ui.next upgrade × 1
- docker × 1
- dojo × 1
- dol × 1
- dom × 1
- domain × 1
- du × 1
- duf-101 × 1
- dynamic × 1
- eastern language × 1
- eclipse × 1
- edsl × 1
- em algorithm × 1
- emacs × 1
- emotion × 1
- enums × 1
- error × 1
- etw × 1
- euclidean × 1
- eventhandlerlist × 1
- examples × 1
- ext js × 1
- extension methods × 1
- extra × 1
- facet pattern × 1
- failed to translate × 1
- fake × 1
- fantomas × 1
- fear × 1
- float × 1
- form × 1
- form-data × 1
- forum × 1
- fp × 1
- frank × 1
- fsdoc × 1
- fsharp × 1
- fsharp.core × 1
- fsharp.powerpack × 1
- fsharpx × 1
- fsunit × 1
- function × 1
- functional style × 1
- game × 1
- games × 1
- gc × 1
- generic × 1
- geometry × 1
- getlastwin32error × 1
- getting-started × 1
- google × 1
- google.maps × 1
- grid × 1
- group × 1
- guide × 1
- hash × 1
- headers × 1
- hello world example × 1
- heroku × 1
- highchart × 1
- history × 1
- how to × 1
- html-templating × 1
- http405 × 1
- httpcontext × 1
- hubfs × 1
- i18n × 1
- ie 8 × 1
- if-doc × 1
- iis × 1
- image × 1
- images × 1
- inheritance × 1
- initialize × 1
- input × 1
- install "visual studio" × 1
- installer × 1
- int64 × 1
- interfaces × 1
- internet explorer × 1
- interop × 1
- interpreter × 1
- io × 1
- iobservable × 1
- ios × 1
- iot × 1
- ipad × 1
- isomorphic × 1
- javascript optimization × 1
- javascript semanticui resources × 1
- jquery-plugin × 1
- jquery-ui × 1
- jquery-ui-datepicker × 1
- js × 1
- kendo datasource × 1
- kendochart × 1
- kendoui compiler × 1
- knockout × 1
- l10n × 1
- learning × 1
- library × 1
- libs × 1
- license × 1
- licensing × 1
- lineserieszonescfg × 1
- local setting × 1
- localization × 1
- logging × 1
- loop × 1
- macros × 1
- mailboxprocessor × 1
- mapping × 1
- maps × 1
- markerclusterer × 1
- markup × 1
- marshal × 1
- math × 1
- mathjax × 1
- message × 1
- message passing × 1
- message-passing × 1
- meta × 1
- metro style × 1
- micro orm × 1
- minimum-requirements × 1
- mix × 1
- mobile installation × 1
- mod_mono × 1
- modal × 1
- module × 1
- mouseevent × 1
- mouseposition × 1
- multidimensional × 1
- multiline × 1
- multithreading × 1
- mysql × 1
- mysqlclient × 1
- nancy × 1
- native × 1
- nested × 1
- nested loops × 1
- node × 1
- nunit × 1
- object relation mapper × 1
- object-oriented × 1
- om × 1
- onboarding × 1
- onclick × 1
- optimization × 1
- option × 1
- orm × 1
- os x × 1
- output-path × 1
- override × 1
- paper × 1
- parameter × 1
- persistence × 1
- persistent data structure × 1
- phonegap × 1
- pola × 1
- post × 1
- powerpack × 1
- prefix tree × 1
- principle of least authority × 1
- privacy × 1
- private × 1
- profile × 1
- programming × 1
- project × 1
- project euler × 1
- projekt_feladat × 1
- protected × 1
- provider × 1
- proxy × 1
- ptvs × 1
- public × 1
- pure f# × 1
- purescript × 1
- qna × 1
- quant × 1
- query sitelet × 1
- question × 1
- quotations × 1
- range × 1
- raphael × 1
- razor × 1
- rc × 1
- reactjs × 1
- real-time × 1
- ref × 1
- region × 1
- released in 4.0.190.100-rc × 1
- reporting × 1
- responsive design × 1
- rest api × 1
- rest sitelet × 1
- restful × 1
- round table × 1
- router × 1
- routing × 1
- rpc reverseproxy × 1
- runtime × 1
- sales × 1
- sample × 1
- sampleapp × 1
- scriptcs × 1
- scripting × 1
- search × 1
- self hosted × 1
- semanticui × 1
- sequence × 1
- serialisation × 1
- service × 1
- session-state × 1
- sharepoint × 1
- signals × 1
- sitelet website × 1
- sitelet.protect × 1
- sitlets × 1
- slickgrid × 1
- source code × 1
- sqlentityconnection × 1
- ssl × 1
- standards × 1
- static content × 1
- stickynotes × 1
- streamreader × 1
- stress × 1
- strong name × 1
- structures × 1
- submitbutton × 1
- subscribe × 1
- svg example html5 websharper.ui.next × 1
- sweetalert × 1
- system.datetime × 1
- system.reflection.targetinvocationexception × 1
- table storage × 1
- targets × 1
- tdd × 1
- templates ui.next × 1
- templating × 1
- text parsing × 1
- three.js × 1
- time travel × 1
- tls × 1
- tooltip × 1
- tracing × 1
- tsunamiide × 1
- turkish × 1
- twitter-bootstrap × 1
- type erasure × 1
- type inference × 1
- type providers × 1
- type-providers × 1
- typeprovider × 1
- ui next forms × 1
- ui-next × 1
- ui.next jqueryui × 1
- ui.next charting × 1
- ui.next formlets × 1
- ui.next forms × 1
- ui.next suave visualstudio × 1
- ui.next templating × 1
- unicode × 1
- unittest client × 1
- upload × 1
- usersession × 1
- validation × 1
- vb × 1
- vb.net × 1
- vector × 1
- view.map × 1
- visal studio × 1
- visual f# × 1
- visual studio 11 × 1
- visual studio 2012 × 1
- visual studio shell × 1
- vs2017 compiler zafir × 1
- vsix × 1
- web api × 1
- web-scraping × 1
- webapi × 1
- webcomponents × 1
- webforms × 1
- webgl × 1
- webrtc × 1
- webshaper × 1
- websharper async × 1
- websharper codemirror × 1
- websharper f# google × 1
- websharper forms × 1
- websharper reactive × 1
- websharper rpc × 1
- websharper sitelets routing × 1
- websharper warp × 1
- websharper-interface-generator × 1
- websharper.chartsjs × 1
- websharper.com × 1
- websharper.exe × 1
- websharper.owin × 1
- websharper.ui.next × 1
- websharper.ui.next jquery × 1
- websockets iis × 1
- why-websharper × 1
- windows 7 × 1
- windows 8 × 1
- windows-phone × 1
- winrt × 1
- www.grabbitmedia.com × 1
- xamarin × 1
- xml × 1
- yeoman × 1
- yield × 1
- zafir beta × 1
- zafir websharper4 × 1
- zarovizsga × 1
![]() |
Copyright (c) 2011-2012 IntelliFactory. All rights reserved. Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy |
Built with WebSharper |
Unicode is a fact of programing life; in Prolog one can parse by specifying any combination of characters as xf, xfy, or fy with a precedence metric from 0 to 1000.
But like C#, F# has no recognition of Unicode symbols as operators (classifying them all as +-precedence xfy would be better than nothing; parentheses used to be quite common in functional languages). However, both permit certain Unicode letters as identifiers.
So whether it's to clarify a mathematical algorithm or just for fun with friends, here are the Unicodes that are accepted in identifiers along with some thoughtful and thoughtless ideas of what they mean. Here's the most interesting I could find out of tens of thousands of characters (Yeah my imagination flails at the semiotics of Mandarin Chinese).
Science:
Σ summation or another aggregation operator e.g. build a list of values
Π pi; Π2 is 2*pi;
ǂ not equal
ƒ a function
Δ Change or minimum action resolving constraints
º temperature (ºf or ºc)
θ an angle measured in radians; in particle effects: metric of an angular spring
Øø null set
Λ the intersection of two sets
γ the union of two sets
º angle measured in degrees or else temperature (ºf or ºc)
Ɨ an element not included in a set
ω angular momentum; in people, spin;
Ϯ student's t-test; probability that a coin tossed N times is unfair assuming maxint prior 0.5
ε existential quantification
Γ for all or universal qunatification
Programming (some practical, some just for fun, but I defer all F#-domain interpretations to its developers):
ν a vector in rθ or xy notation with possibly many dimensions
μ 1/million
α the first variable that comes to mind; or, there's at least one thing and this is first
β a variable juxtaposed against α; or, there are two things and this is second
Ø null
ω torque or else force field
ς pointlessly confusing
ɖ backtracking or contraint logic programming
ʚ it's your bug or someone else's bug
φ it's my bug
ͺ matching an ascii character permitted as an operator in F#
̗ marks a small mistake
Ξ a table
目 κ a table column
Ɨ a table row
Οορό mapping, iteration, or a circular process
ɸΦ denotes a filter or predicate (ɸ from circumscription)
ɕ iteration predicate; e.g. bool MoveNext
ɒ leaf node in iteration of tree or graph
Ӝ a security descriptor or encryption key
τ XτY: insert X into Y possibly (Y may need to be copied in the process)
어 function to reduce or break up
ɪ declares an integer that automatically grows into a bignum when it exceeds +-2^63
Ω resistance (e.g. ohms or drag in a video game)
γ a complex choice
η I know this is inefficient; I want to get it through unit tests before I optimize; optimize if needed
ʘ xʘ means "the function which tests x"
ι general dynamic type
λ a pure function; a function free of side effects allowing batracking or continuation-safe
Ϟ a spring or wavicle in particle effects
ζ Depreciative; e.g. the following is complex only because of poor design
ɤ Whatever; as in, I shouldn't have to do this but I'm doing it because it appears necessary to reach a goal
A model of human subjectivity (just for fun)
Ψψ A model of subjective reasoning or human emotion which is descriptive rather than normative
γ Choice
ω Spin; a self-serving description; the charismatic leader who creates a "reality distortion field"
χ chi-square independence test
δ external blame (angry at her for screwing things up)
ʘ resonant; "yes"; perpetuates increasing commitment
Ϟ dissonant; "no"; rejection; learning may involve structural change
Ϫ a nice surprise given or received
ƴ emphatic "yes" or "thanks alot"
Ƴ "yes" or thanks
ʁ A sense of satisfaction or meaning which involved effort; the unfolding beauty of a pursuit coming from flow
ɣ disproportinate effort; either far too much or far too little
Ʀ Money is king (for calc'ing business plans)
α dominate
β there are two things and this is second
ɐ an exception
λ wavelength of light; a super-intelligent shade of blue (HGTTG)
Ӝ the restaurant at the end of the universe (also HGTTG)
If I have to do something annoying to get myself to write a test suite or something I sometimes play with characters a bit.
Disclaimers: obviously there are punishments and a special ring in hell (see Dante's inferno) for those who abuse Unicodes. If you're in a special domain that assigns meaning to symbols or Greek letters, it's important to stay consistent with that specialty's semiotics or they won't understand what you're doing.
What I tell fellow students (so I'll remember): abusing Unicode can get one fired or thrown off a project. Abuse is when others have to maintain or use your software and the Unicode obfuscates. No one wants to see lots of F# littered with Ӝ (pointless complexity).
I wouldn't share this with RPG graduates in C# land or VB land, but here we already have enough rope to hang ourselves, so this is just potentially clarifying and fun. (Fun is the only antidote I've found to Linux-loving fellow students distrusting M$FT and calling it M$FT in e-mails and so forth. Concise but beautiful graphics is even better (anyone up to a flam3 implementation in F#? my particle effects end up looking like insects ☹)).
But how do you search and replace λ in your code? Create a VB Macro under VS tools and select explore. Insert something like this:
Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Windows.Forms
Public Module qyLibraryMacros
Sub InsertL()
Dim selection As EnvDTE.TextSelection
Dim editPoint As EnvDTE.EditPoint
selection = DTE.ActiveDocument.Selection()
editPoint = selection.ActivePoint.CreateEditPoint()
SendKeys.SendWait("{λ}")
End Sub
End Module
If that doesn't work try:
Dim selection As EnvDTE.TextSelection
Dim editPoint As EnvDTE.EditPoint
selection = DTE.ActiveDocument.Selection()
editPoint = selection.ActivePoint.CreateEditPoint()
editPoint.Insert("{λ}")
Then use tools->customize->keyboard and assign your keys of choice (I use control-number or ^Q to prefix my alternate alphabet; ^Qc inserts a copyright message and I use ^Q^anyletter to insert F# snippets.
I tried to stay away from accents over vowels because those are needed in the domain of localized discourse.
I'll track Unicode adoption on a web site if anyone wants to start establishing domain-specific conventions.
I almost forgot: Hebrew and other languages happen to not quite work in VS. At first it seems like they mess up the left and right arrow keys but after a while you'll see the pattern. Sprinkling someone's code with these characters isn't funny-- unless of course they won't let you program in F# of course.
Also a few of the characters above cause Visual Studio to change character spacing for an entire line. Spacing is very important to know where identifiers start and end.