Printing first letter of an atom Prolog The Next CEO of Stack OverflowProlog how to print first 3 elements in a listPredicate that will swap the first two letters in an atom in PrologInterchanging first two letters in a word using prologprint out letter squences in prologprolog, changing atoms in expressionreplace elements in prologGet list of atoms by index from i to j in PrologProlog: Differentiate between number and letter listLast two elements of first list = first two elements of second list - PrologReplacing atom with corresponding value from a list in Prolog

What can we do to stop prior company from asking us questions?

To not tell, not take, and not want

How does the mv command work with external drives?

Should I tutor a student who I know has cheated on their homework?

How did the Bene Gesserit know how to make a Kwisatz Haderach?

Why do remote companies require working in the US?

Bold, vivid family

How do I go from 300 unfinished/half written blog posts, to published posts?

In excess I'm lethal

Example of a Mathematician/Physicist whose Other Publications during their PhD eclipsed their PhD Thesis

How do I transpose the 1st and -1th levels of an arbitrarily nested array?

What happens if you roll doubles 3 times then land on "Go to jail?"

How to solve a differential equation with a term to a power?

Received an invoice from my ex-employer billing me for training; how to handle?

What flight has the highest ratio of time difference to flight time?

Would a galaxy be visible from outside, but nearby?

If a black hole is created from light, can this black hole then move at speed of light?

What is "(CFMCC)" on an ILS approach chart?

Which kind of appliances can one connect to electric sockets located in a airplane's toilet?

Is 'diverse range' a pleonastic phrase?

Why do airplanes bank sharply to the right after air-to-air refueling?

Interfacing a button to MCU (and PC) with 50m long cable

Real integral using residue theorem - why doesn't this work?

Unreliable Magic - Is it worth it?



Printing first letter of an atom Prolog



The Next CEO of Stack OverflowProlog how to print first 3 elements in a listPredicate that will swap the first two letters in an atom in PrologInterchanging first two letters in a word using prologprint out letter squences in prologprolog, changing atoms in expressionreplace elements in prologGet list of atoms by index from i to j in PrologProlog: Differentiate between number and letter listLast two elements of first list = first two elements of second list - PrologReplacing atom with corresponding value from a list in Prolog










1















Print the first letter of two atoms in a list. I can't even get the first letter of one of the two atoms in the list to print.



grab_letter([],[]).
grab_letter([A],[B]) :- A = [First|_], B = [Second|_].

?- grab_letter([apple,pie]).

true ?


How do I get it to print "a"?










share|improve this question



















  • 1





    atom_chars/2 is your friend !

    – joel76
    Mar 21 at 8:20











  • What about ''? There is an atom that does not have a first character.

    – repeat
    Mar 21 at 20:05















1















Print the first letter of two atoms in a list. I can't even get the first letter of one of the two atoms in the list to print.



grab_letter([],[]).
grab_letter([A],[B]) :- A = [First|_], B = [Second|_].

?- grab_letter([apple,pie]).

true ?


How do I get it to print "a"?










share|improve this question



















  • 1





    atom_chars/2 is your friend !

    – joel76
    Mar 21 at 8:20











  • What about ''? There is an atom that does not have a first character.

    – repeat
    Mar 21 at 20:05













1












1








1








Print the first letter of two atoms in a list. I can't even get the first letter of one of the two atoms in the list to print.



grab_letter([],[]).
grab_letter([A],[B]) :- A = [First|_], B = [Second|_].

?- grab_letter([apple,pie]).

true ?


How do I get it to print "a"?










share|improve this question
















Print the first letter of two atoms in a list. I can't even get the first letter of one of the two atoms in the list to print.



grab_letter([],[]).
grab_letter([A],[B]) :- A = [First|_], B = [Second|_].

?- grab_letter([apple,pie]).

true ?


How do I get it to print "a"?







prolog






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 21 at 17:06









false

10.4k773151




10.4k773151










asked Mar 21 at 4:18









SuguruDabSuguruDab

64




64







  • 1





    atom_chars/2 is your friend !

    – joel76
    Mar 21 at 8:20











  • What about ''? There is an atom that does not have a first character.

    – repeat
    Mar 21 at 20:05












  • 1





    atom_chars/2 is your friend !

    – joel76
    Mar 21 at 8:20











  • What about ''? There is an atom that does not have a first character.

    – repeat
    Mar 21 at 20:05







1




1





atom_chars/2 is your friend !

– joel76
Mar 21 at 8:20





atom_chars/2 is your friend !

– joel76
Mar 21 at 8:20













What about ''? There is an atom that does not have a first character.

– repeat
Mar 21 at 20:05





What about ''? There is an atom that does not have a first character.

– repeat
Mar 21 at 20:05












1 Answer
1






active

oldest

votes


















3














The ISO Prolog standard specifies a sub_atom/5 built-in predicates that can decompose an atom into a sub-atom. The first argument is the atom, the second argument is the number of characters before the sub-atom, the third argument is the length of the sub-atom, the fourth argument is the number of characters after the sub-atom, and the fifth argument is the sub-atom. For example:



| ?- sub_atom(apple, 0, 1, _, First).

First = a
yes

| ?- sub_atom(pie, 0, 1, _, First).

First = p
yes


You can call this predicate from your code that processes the list containing the atoms. Can you give it a try and edit your question with the updated code?



Using in alternative the also standard atom_chars/2 predicate, as suggested in a comment, is not a good idea as it results in creating a temporary list (that will eventually be garbage-collected) just to access the first character.






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55273722%2fprinting-first-letter-of-an-atom-prolog%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3














    The ISO Prolog standard specifies a sub_atom/5 built-in predicates that can decompose an atom into a sub-atom. The first argument is the atom, the second argument is the number of characters before the sub-atom, the third argument is the length of the sub-atom, the fourth argument is the number of characters after the sub-atom, and the fifth argument is the sub-atom. For example:



    | ?- sub_atom(apple, 0, 1, _, First).

    First = a
    yes

    | ?- sub_atom(pie, 0, 1, _, First).

    First = p
    yes


    You can call this predicate from your code that processes the list containing the atoms. Can you give it a try and edit your question with the updated code?



    Using in alternative the also standard atom_chars/2 predicate, as suggested in a comment, is not a good idea as it results in creating a temporary list (that will eventually be garbage-collected) just to access the first character.






    share|improve this answer





























      3














      The ISO Prolog standard specifies a sub_atom/5 built-in predicates that can decompose an atom into a sub-atom. The first argument is the atom, the second argument is the number of characters before the sub-atom, the third argument is the length of the sub-atom, the fourth argument is the number of characters after the sub-atom, and the fifth argument is the sub-atom. For example:



      | ?- sub_atom(apple, 0, 1, _, First).

      First = a
      yes

      | ?- sub_atom(pie, 0, 1, _, First).

      First = p
      yes


      You can call this predicate from your code that processes the list containing the atoms. Can you give it a try and edit your question with the updated code?



      Using in alternative the also standard atom_chars/2 predicate, as suggested in a comment, is not a good idea as it results in creating a temporary list (that will eventually be garbage-collected) just to access the first character.






      share|improve this answer



























        3












        3








        3







        The ISO Prolog standard specifies a sub_atom/5 built-in predicates that can decompose an atom into a sub-atom. The first argument is the atom, the second argument is the number of characters before the sub-atom, the third argument is the length of the sub-atom, the fourth argument is the number of characters after the sub-atom, and the fifth argument is the sub-atom. For example:



        | ?- sub_atom(apple, 0, 1, _, First).

        First = a
        yes

        | ?- sub_atom(pie, 0, 1, _, First).

        First = p
        yes


        You can call this predicate from your code that processes the list containing the atoms. Can you give it a try and edit your question with the updated code?



        Using in alternative the also standard atom_chars/2 predicate, as suggested in a comment, is not a good idea as it results in creating a temporary list (that will eventually be garbage-collected) just to access the first character.






        share|improve this answer















        The ISO Prolog standard specifies a sub_atom/5 built-in predicates that can decompose an atom into a sub-atom. The first argument is the atom, the second argument is the number of characters before the sub-atom, the third argument is the length of the sub-atom, the fourth argument is the number of characters after the sub-atom, and the fifth argument is the sub-atom. For example:



        | ?- sub_atom(apple, 0, 1, _, First).

        First = a
        yes

        | ?- sub_atom(pie, 0, 1, _, First).

        First = p
        yes


        You can call this predicate from your code that processes the list containing the atoms. Can you give it a try and edit your question with the updated code?



        Using in alternative the also standard atom_chars/2 predicate, as suggested in a comment, is not a good idea as it results in creating a temporary list (that will eventually be garbage-collected) just to access the first character.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 21 at 8:45

























        answered Mar 21 at 8:40









        Paulo MouraPaulo Moura

        12.8k21426




        12.8k21426





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55273722%2fprinting-first-letter-of-an-atom-prolog%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Obelisk of Theodosius Contents History Description Notes Bibliography Further reading External links Navigation menuAge of spirituality : late antique and early Christian art, third to seventh centuryOver 60 picturesObelisks of the World41°00′21.24″N 28°58′31.43″E / 41.0059000°N 28.9753972°E / 41.0059000; 28.97539727724550-7235741376235741376

            밀양 대씨 역사 각주 함께 보기 둘러보기 메뉴밀양 대씨

            1973년 목차 사건 문화 탄생 사망 노벨상 달력 둘러보기 메뉴