Home Articles Software Reverse assignment option

Reverse assignment option

While writing a piece of software I got this thought about a feature that could be provided in programming languages (at least I am not aware of any language which has this feature)

Usually when we want to assign a value of a variable “a” to another variable say “b” all we do is write


Now consider this case. Suppose we want to assign the value of variable “a” to “b” if “c” equals 1 OR else we want to assign “d” to “b”, then we write


an easier way to write the above code would be to use a ternary operator as


Now consider another scenario, where we want to assign “a” to “b” if “c” equals 1 OR we want to assign “a” to “e”

Oops then we cant use the ternary operator, instead we have to fallback to our old friend “if.. else” as


Now wouldnt it be nice if this could be achieved using something like

a#(c==1?b:e) where # is the reverse assignment operator which assigns LHS to RHS !

so here if c==1 then # would assign “a” to “b” else it would assign “a” to “e” !!!

Just some crazy thoughts

Content Protection by DMCA.com
Gurudev is the developer of Gurunudi AI Platform. This is his official website where he pens his thoughts on a wide range of topics, answers queries, shares resources and tools developed by him.


  1. @kaushik.
    well, its bouncing off my head…
    laches.. multiplex…
    it would be great if you could give a high level view of this please….
    else i need to do googling :(

  2. Kaushik,

    The value of b when c~=1 should continue be whatever it is currently! isnt that possible? like (0 0) in SR latch? or am I talking something crap, bcos I am not an electronics student :)

  3. well i guess you are aware of a multiplexer. a simple example of a 2×1 mux assigns one of the two inputs to the single output depending on select line. that is what the conditional operator does. if we code this using a hardware descriptive language, like VHDL or verilogthe language synthsisers will implement the logic to a multiplexer.

    the second thought of a reverse assignment doesnt acutally happen in circuit(at least not a good method of implementation). although the thought is interesting, but the ciruit will be unstable. that is becuase, there are two outputs. and in digital logic, any output should always be either 0 or 1. but when we look into the second expression the two ouptus are getting the value of the input on a select line, and the state of a particular output when there is no select line is unkown. for eg., if c=1, then b=a. but what is the value of b when c~=1 is unknown. thus there is an ambiguity and when we try to synthesis such logic, and we get latches where the older value of b gets latched. although theoretically lathces may seem OK for design, but are not preferred practically.

    Infact this is the reason why we dont find any general expressions(ternary operator kind of) for the second logic.

  4. @kaushik
    i didnt got that…
    could u explain how assignments happen in circuit level…

    good thought man…
    in that case, for many of my methods, i would ask for an operator :P


Please enter your comment!
Please enter your name here

RSS FeedSubscribe
Sound CloudFollow

Latest Articles

Online Education should be interactive and innovative – Fun to Learn

For online education to succeed for smaller classses - it should be as interesting as cartoons. Online education cant succeed unless it is more interesting, interactive and innovative than offline schooling.

The Complete List of Dhatus – Sanskrit Root Words and their English meaning

A complete list of all dhatus (root words or verb roots) in Sanskrit dictionary and their meanings with corresponding IPA transliteration.

Sanskrit Lesson 4 – Word Creation Magic using Dhatus

Learn how easy it is to create new words in Sanskrit using root words called Dhatus. This simple process of Sanskrit grammar powers the entire language.

The Secret Role of Karma in Mahabharata

The seeds of Mahabharata were sown long back Duryodhana or Dhritarashtra were born. The story of Kaurvas and Pandavas is only the second half of the cycle of Karma. So what is the first half?

Latest Music Notations

So Gaya Ye Jahan – Tezaab – Piano Notations

Piano, Keyboard, Violin, Flute notes, Guitar Tabs and Sheet Music of the Song So Gaya Ye Jahan from the 1988 Hindi movie Tezaab in Western and Indian Notations.

Background Theme (BGM) – Mouna Ragam – Piano Notations

Piano, Keyboard, Violin, Flute notes, Guitar Tabs and Sheet Music of the Song Background Theme (BGM) from the 1986 Tamil movie Mouna Ragam in Western and Indian Notations.

Dil Kya Kare Jab Kisi Se – Julie – Piano Notations

Piano, Keyboard, Violin, Flute notes, Guitar Tabs and Sheet Music of the Song Dil Kya Kare Jab Kisi Se from the 1975 Hindi movie Julie in Western and Indian Notations.

Albela Sajan Aayo Re – Hum Dil De Chuke Sanam – Piano Notations

Piano, Keyboard, Violin, Flute notes, Guitar Tabs and Sheet Music of the Song Albela Sajan Aayo Re from the 1999 Hindi movie Hum Dil De Chuke Sanam in Western and Indian Notations.
Content Protection by DMCA.com