Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8208903
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 7, 20262026-06-07T09:31:50+00:00 2026-06-07T09:31:50+00:00

It seems as if everything needs to be wrapped in parenthesis in clojure. Even

  • 0

It seems as if everything needs to be wrapped in parenthesis in clojure. Even a simple hello world!

(println "Hello world!")

What is the benefit of that syntax decision?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-07T09:31:52+00:00Added an answer on June 7, 2026 at 9:31 am

    The fundamental reason is that Clojure was designed as a homoiconic language, i.e. code is expressed in the core data structures of the language. All Lisps share this property, but few other languages do. As a result, the entire language design of Lisps is strongly influenced by this decision.

    The choice was made early in the design of Lisp that lists would be used for function invocation in the form:

    (function arg1 arg2 arg3) => some result
    

    This has lots of advantages:

    • A function call is expressed as a single data object known as a “form” (in this case the form is a list, but it could also be a vector, a hashmap, a literal value etc.). You can pass it around, modify it and transform it as needed before execution.
    • It’s easy to construct such function calls using standard list operations – e.g. (cons function-symbol list-of-args)
    • The syntax is very easy to parse – everything between two parentheses is a self-contained expression. This makes writing parsers easy, and also helps with tooling (see the incredible array of paren-handling commands in emacs for example)

    The function name could have been put outside the parentheses:

    function (arg1 arg2 arg3) => some result
    

    But this would have many disadvantages:

    • You can no longer express a function call in a single form. You’d have to pass around two separate data objects, the function name and the argument list.
    • It would make the syntax more complex – you would need additional syntax rules to recognise this as a function call (e.g. extra delimiters like “,” between the arguments)
    • It would be harder to do code generation. Lisp was designed from the start to allow effective code generation – on the other hand if you’ve ever tried generating C++ source code then you will know how hard it can be in a language not designed in that way.
    • It does not actually reduce the number of parentheses overall. In fact, due to being a very concise language, Clojure usually ends up with less parentheses than equivalent code in Java / C#
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've been searching around for the answer and everything seems to lead that this
i have written an application that needs to process outgoing calls. Everything works fine,
Just installed EE everything seems clear however I can't seem to find a solution
I'm working on a socket program and everything seems fine when compiling. First I
I am writing a script to talk with twitter - everything seems fine apart
I'm running fabric (Django deployment to apache) and everything seems to work fine until
I am using FB.login when user is not connected and everything seems fine, though
When I try to start Firefox using Process.Start and ProcessStartInfo (.NET) everything seems to
I just transferred from a college to a university and it seems like everything
I ran the convert_to_south command on my app. Everything seems to have gone fine:

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.